{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "树状图（或树形图）是一种网络结构。它由一个根节点组成，根节点产生由边或分支连接的多个节点。层次结构的最后一个节点称为叶。本文主要基于R语言实现树形图的绘制。关于python实现树形图的绘制见：[基于matplotlib实现树形图的绘制](https://blog.csdn.net/luohenyj/article/details/97949476)\n",
    "\n",
    "之所以还用R语言实现树形图的绘制，主要原因在于R语言所实现的树形图比python实现的更加多样。R语言树形图提供以下两种类型：\n",
    "1. 分层树形图：类似CEO管理团队领导管理员工等等。\n",
    "2. 聚类树形图：聚类将一组个体按相似性分组。它的结果可以可视化为一棵树。\n",
    "\n",
    "本文主要参考：[Dendrogram](https://www.r-graph-gallery.com/dendrogram.html)\n",
    "\n",
    "本文所有代码见：[R-Study-Notes](https://github.com/luohenyueji/R-Study-Notes/tree/master/Visualization)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1 分层树形图 DENDROGRAM FROM HIERARCHICAL DATA\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 基于R语言和ggraph绘制树形图 Introduction to tree diagram with R and ggraph\n",
    "\n",
    "本节逐步介绍通过R语言和ggraph建立树形图，并提供了解释和可复制代码。ggraph包是用R从层次数据构建树形图的最佳选择，其遵循与ggplot2相同的逻辑。本节旨在使用ggraph库制作一个表示层次数据的基本树形图。考虑两种输入格式：\n",
    "+ 基于边列表\n",
    "+ 基于嵌套数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.1.1 通过边绘制树形图 Dendrogram from edge list\n",
    "基于边列表绘制树形图意思是给定每一个节点到另外一个节点的数据，来依次绘制树形图。边列表数据使用ggraph最方便的格式。数据结构如下图所示。每一行代表一条边，比如(origin,group1)表示从节点origin到group的边。\n",
    "\n",
    "![](imgonline/Hierarchical_network_2col.png)\n",
    "\n",
    "请遵循以下步骤：\n",
    "+ 使用igraph库中的graph_from_data_frame()函数将输入数据帧转换为图形对象\n",
    "+ 使用ggraph的树形图布局，布局为'dendrogram'\n",
    "\n",
    "主要步骤依次讲解："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**创建数据**  \n",
    "其中d1为根节点到第一层节点的数据，每一行代表一条边，比如(origin,group1)表示从节点origin到group的边，d2是第一层节点到第二层节点的数据。edges是对d1和d2的汇总"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 3 × 2</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>from</th><th scope=col>to</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>origin</td><td>group1</td></tr>\n",
       "\t<tr><td>origin</td><td>group2</td></tr>\n",
       "\t<tr><td>origin</td><td>group3</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 3 × 2\n",
       "\\begin{tabular}{r|ll}\n",
       " from & to\\\\\n",
       " <fct> & <fct>\\\\\n",
       "\\hline\n",
       "\t origin & group1\\\\\n",
       "\t origin & group2\\\\\n",
       "\t origin & group3\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 3 × 2\n",
       "\n",
       "| from &lt;fct&gt; | to &lt;fct&gt; |\n",
       "|---|---|\n",
       "| origin | group1 |\n",
       "| origin | group2 |\n",
       "| origin | group3 |\n",
       "\n"
      ],
      "text/plain": [
       "  from   to    \n",
       "1 origin group1\n",
       "2 origin group2\n",
       "3 origin group3"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 9 × 2</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>from</th><th scope=col>to</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>group1</td><td>subgroup_1</td></tr>\n",
       "\t<tr><td>group1</td><td>subgroup_2</td></tr>\n",
       "\t<tr><td>group1</td><td>subgroup_3</td></tr>\n",
       "\t<tr><td>group2</td><td>subgroup_4</td></tr>\n",
       "\t<tr><td>group2</td><td>subgroup_5</td></tr>\n",
       "\t<tr><td>group2</td><td>subgroup_6</td></tr>\n",
       "\t<tr><td>group3</td><td>subgroup_7</td></tr>\n",
       "\t<tr><td>group3</td><td>subgroup_8</td></tr>\n",
       "\t<tr><td>group3</td><td>subgroup_9</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 9 × 2\n",
       "\\begin{tabular}{r|ll}\n",
       " from & to\\\\\n",
       " <fct> & <fct>\\\\\n",
       "\\hline\n",
       "\t group1 & subgroup\\_1\\\\\n",
       "\t group1 & subgroup\\_2\\\\\n",
       "\t group1 & subgroup\\_3\\\\\n",
       "\t group2 & subgroup\\_4\\\\\n",
       "\t group2 & subgroup\\_5\\\\\n",
       "\t group2 & subgroup\\_6\\\\\n",
       "\t group3 & subgroup\\_7\\\\\n",
       "\t group3 & subgroup\\_8\\\\\n",
       "\t group3 & subgroup\\_9\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 9 × 2\n",
       "\n",
       "| from &lt;fct&gt; | to &lt;fct&gt; |\n",
       "|---|---|\n",
       "| group1 | subgroup_1 |\n",
       "| group1 | subgroup_2 |\n",
       "| group1 | subgroup_3 |\n",
       "| group2 | subgroup_4 |\n",
       "| group2 | subgroup_5 |\n",
       "| group2 | subgroup_6 |\n",
       "| group3 | subgroup_7 |\n",
       "| group3 | subgroup_8 |\n",
       "| group3 | subgroup_9 |\n",
       "\n"
      ],
      "text/plain": [
       "  from   to        \n",
       "1 group1 subgroup_1\n",
       "2 group1 subgroup_2\n",
       "3 group1 subgroup_3\n",
       "4 group2 subgroup_4\n",
       "5 group2 subgroup_5\n",
       "6 group2 subgroup_6\n",
       "7 group3 subgroup_7\n",
       "8 group3 subgroup_8\n",
       "9 group3 subgroup_9"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 12 × 2</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>from</th><th scope=col>to</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>origin</td><td>group1    </td></tr>\n",
       "\t<tr><td>origin</td><td>group2    </td></tr>\n",
       "\t<tr><td>origin</td><td>group3    </td></tr>\n",
       "\t<tr><td>group1</td><td>subgroup_1</td></tr>\n",
       "\t<tr><td>group1</td><td>subgroup_2</td></tr>\n",
       "\t<tr><td>group1</td><td>subgroup_3</td></tr>\n",
       "\t<tr><td>group2</td><td>subgroup_4</td></tr>\n",
       "\t<tr><td>group2</td><td>subgroup_5</td></tr>\n",
       "\t<tr><td>group2</td><td>subgroup_6</td></tr>\n",
       "\t<tr><td>group3</td><td>subgroup_7</td></tr>\n",
       "\t<tr><td>group3</td><td>subgroup_8</td></tr>\n",
       "\t<tr><td>group3</td><td>subgroup_9</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 12 × 2\n",
       "\\begin{tabular}{r|ll}\n",
       " from & to\\\\\n",
       " <fct> & <fct>\\\\\n",
       "\\hline\n",
       "\t origin & group1    \\\\\n",
       "\t origin & group2    \\\\\n",
       "\t origin & group3    \\\\\n",
       "\t group1 & subgroup\\_1\\\\\n",
       "\t group1 & subgroup\\_2\\\\\n",
       "\t group1 & subgroup\\_3\\\\\n",
       "\t group2 & subgroup\\_4\\\\\n",
       "\t group2 & subgroup\\_5\\\\\n",
       "\t group2 & subgroup\\_6\\\\\n",
       "\t group3 & subgroup\\_7\\\\\n",
       "\t group3 & subgroup\\_8\\\\\n",
       "\t group3 & subgroup\\_9\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 12 × 2\n",
       "\n",
       "| from &lt;fct&gt; | to &lt;fct&gt; |\n",
       "|---|---|\n",
       "| origin | group1     |\n",
       "| origin | group2     |\n",
       "| origin | group3     |\n",
       "| group1 | subgroup_1 |\n",
       "| group1 | subgroup_2 |\n",
       "| group1 | subgroup_3 |\n",
       "| group2 | subgroup_4 |\n",
       "| group2 | subgroup_5 |\n",
       "| group2 | subgroup_6 |\n",
       "| group3 | subgroup_7 |\n",
       "| group3 | subgroup_8 |\n",
       "| group3 | subgroup_9 |\n",
       "\n"
      ],
      "text/plain": [
       "   from   to        \n",
       "1  origin group1    \n",
       "2  origin group2    \n",
       "3  origin group3    \n",
       "4  group1 subgroup_1\n",
       "5  group1 subgroup_2\n",
       "6  group1 subgroup_3\n",
       "7  group2 subgroup_4\n",
       "8  group2 subgroup_5\n",
       "9  group2 subgroup_6\n",
       "10 group3 subgroup_7\n",
       "11 group3 subgroup_8\n",
       "12 group3 subgroup_9"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# libraries\n",
    "# 包\n",
    "library(ggraph)\n",
    "library(igraph)\n",
    "library(tidyverse)\n",
    " \n",
    "# create an edge list data frame giving the hierarchical structure of your individuals\n",
    "# 创建层级数据\n",
    "d1 <- data.frame(from=\"origin\", to=paste(\"group\", seq(1,3), sep=\"\"))\n",
    "d1\n",
    "d2 <- data.frame(from=rep(d1$to, each=3), to=paste(\"subgroup\", seq(1,9), sep=\"_\"))\n",
    "d2\n",
    "# 汇总\n",
    "edges <- rbind(d1, d2)\n",
    "edges"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**创建图形结构**\n",
    "\n",
    "需要创建专用的图形结构，origin->group1表示从节点origin到节点group1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "IGRAPH 2c80675 DN-- 13 12 -- \n",
       "+ attr: name (v/c)\n",
       "+ edges from 2c80675 (vertex names):\n",
       " [1] origin->group1     origin->group2     origin->group3     group1->subgroup_1\n",
       " [5] group1->subgroup_2 group1->subgroup_3 group2->subgroup_4 group2->subgroup_5\n",
       " [9] group2->subgroup_6 group3->subgroup_7 group3->subgroup_8 group3->subgroup_9"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Create a graph object \n",
    "mygraph <- graph_from_data_frame( edges )\n",
    "mygraph"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**绘图**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAABlBMVEUAAAD///+l2Z/dAAAA\nCXBIWXMAABJ0AAASdAHeZh94AAAe50lEQVR4nO2ci3KbS24G6fd/6d0j3yiLhP4LZtCY6a7K\nbmxTGKCBj2fjVPL4ISK3eVQ3ILICBkkkAYMkkoBBEknAIIkkYJBEEjBIIgkYJJEEDJJIAgZJ\nJAGDJJKAQRJJwCCJJGCQRBIwSCIJGCSRBAySSAIGSSQBgySSgEESScAgiSRgkEQSMEgiCRgk\nkQQMkkgCBkkkAYMkkoBBEknAIIkkYJBEEjBIIgkYJJEEDJJIAgZJJAGDhOfxcEl83BGdx8Mk\nNcAVwXk8TFIH3BAcg9QDNwTHIPXADdExRy1wRXjMUQfcER+D1AB3xMcgNcAd8TFIDXBHfAxS\nA9wRH4PUAHfExyA1wB3xMUgNcEd8DFID3BEfg9QAd8THIDXAHfExSA1wR3wMUgPcER+D1AB3\nxMcgNcAd8TFIDXBHfAxSA9wRnv/nyC3hcUV4DFIHXBEeg9QBV4THIHXAFeExSB1wRXQ+YuSa\n6LghOgapBW6IjkFqgRuiY5Ba4IboGKQWuCE4j5//5Z7guCA4BqkHLgiOQeqBC4JjkHrgguAY\npB64IDa/cuSi6LgfNgapCe6HjUFqgvthY5Ca4H7YGKQmuB80TxlyU2hcDxqD1AXXg8YgdcH1\noDFIXXA9aAxSF1wPmU8RclVk3A4Zg9QGt0PGILXB7ZAxSG1wO2D+SZC7AuNywBikPrgcLl8C\n5LK4uBsuBqkR7oaLQWqEu+FikBrhbrC8yI/bwuJqsBikTrgaLAapE66Gyqv4uC0srobKy/i4\nLipuBsrr9LguKm4Gypv0uC8oLgaKQeqFi2HyNjwujIl7YfI2PC6MiXtB8nj/KzeGxLUgMUjd\ncC1EHsEv3RgS10Ik+AeSK2PiVoDEyXFlRNwKkG+S486AuBQgBqkfLoXHt8FxaTzcCY9vg+PS\neLgTHF9X4j+S+LgSHAapI66ExouNHIiWFONGYBzKkWvD4UZgHEyNe4PhQlgcDo2LY+E+UBzP\njItj4T5QnMiMm0PhOkiciYybQ+E6SJyKjKsj4TZAnEuMqyPhNkCcTIy7A+EyOJwNjLsD4TI4\nnA6My+PgLjBcyIvbw+AqKFyJi9vD4CooXIqL66PgJiBcTIv7g+AiGFwOiwtk4B4QXM+KC2Tg\nHhDcyIobROAaCNyKiisk4BYA3EyKOwTgEuq5GxR3CMAl1HM7KC6xHndQTkJO3GI5rqCalJi4\nxmrcQDE5KXGN1biBYo4swCTxcQG1HPKfFDYZiP5LOaY/LW0yDPVXkpgjN1mL+itJjYirrET7\nhSQnxF0Wovw60gPiMuvQfRkD8uE2y1B9FUPi4Tqr0HwRg9LhPotQfA2jwuE+i1B8DcPC4UJr\n0HsJA7PhRktQewVDo+FKK9B6AWOT4Uor0HoBZ6WbJD5Kn89p54ODJwnofDaP88qHJ09uo/LJ\nXBF+IXrudTIKn8sl33PCJ3fQ91Su6Z6WPrmMumcyMUeudi7ansjkRLjbiSh7HtMD4XLnoetp\nFOTB7U5D1bMoiYPrnYWmJ1GUBvc7CUXPoSwMLngOep7CPc0miY+aZ3DTcmEM5SBansBdyaU5\nlEMoeTzFOXLJM9DxcAA5cMvDUfFoEDFwzaPR8Fgy/g+DMnbkngej4KGk6M0p4qaHot6R5NhN\n2pGrHol2x5H1D4GsHbnrgSh3GGlq8wq57WGodhR5ZhN35LpHodkxZH75Z+7IfQ9CsUPI1Zqa\nJDc+BLWOINkqN5byG63mk/6lj86lfKDUdNKV5hd06+moNJt8owN25Nqz0WgyTa7evSej0Fza\nHL2Lz0WfqTS6eTefijozaXXyrj4TbeYx6i/DRu3I3SeizDTGqRyWJLefhiqzGGiyX0T3Q5M5\nDP1yb5nRzVBkCkM1ji3uBaSgxgzGWhy8I08gAy3eZ/SX+ugdeQMJKPE2wxWOf8AruI0K7zLe\n4IQdeQZ30eA9ZnyZz9iRd3ATBd5iir45j3gJt1DfHebYm7QjT+EO2rvOrC/xWTvyFm6gvMvM\nUzctSV7DZVR3lYnm1ovsemjuGlO/vJfM7GIo7hJTtc19zIu4hNquMNfa5B15ElfQ2nlmf2nP\n3pH/ULqAzs4y/8zm78gonUZjJykQVrEj7+IkCjtFyVd1yY48jHPo6ww1tope9TTOoK0TFMmq\n2pG3cQJlHabsK7psRx7HcXR1lDpThS97HkfR1DEqT6pyR0bpIHo6Qu051e7IKB1CS99TfUrV\nO6qevwU6+o76MypvANABHhV9A0AQoQVAD2wUFEPwQ+iB0QQY/UQwvogRTUC6wKKeAIgcShuQ\nPpgo5z0UN5Q+OI0A0c07OF/AmEZATnBo5jWkkwG1gvKCQi8vQWlBNQPrBoNaXgD72mV1Q2sH\ngla+QnOC64fWEAGdfAGnBNcQsKNyVPIPwK9bXkfElorRyGeIPpA9EZuqRB+fQOpANgXtqgx1\nPAH9mmV2RbVVhDL+gD0Mal9cYwWo4jdcE9zOyK1NRhM/IX+5gltD9zYVRXyA1sBuDt3dPNTw\nH2wL7O7o7U1CC/wvVXh7+P6moAS+An6D+A7HowK+AX6HHVoczO4GOnyZNmixRY9D2VxAi/F7\nNNmiy3HsPX6P6Xt02aXNQew8fZcv0SZttvE5hH1n77P2No02cprOrpN3WnmjVlv1msqeg3eK\nUbMd9VKbx5ZjNxu6W7vN+s1hw6HbLbpbv/0aTmC/mftN3LDjfi3fZbuJGw7csOWWPd9is4Fb\nflV27Lln0zfYa96e0zbtumfbV9lq2qbDNm27bd+X2GjYtl+RXfvua/wC24zaeKl9O+9s/SS7\nDNp5zs69927+BHvM2fuLsXXzzbs/zBZjNh+ye/vN+z/GDkN2n7F7//0HOMAGM7Yfsf0AC0zw\nLeuP2H/C/hOsMMI3LD/hAgMuMMISM4SsPuAK860wwxpDBKw93xp/YbTEEItM8Zalx1tkuFXG\nWGSO16w83CqzrTLHOoO8YN3Z1vkCXGaQhSb5wrKjLTTYSqMsNMtnVh1spblWmmWtYZ5Yc661\nvviWGmaxaf6w5FiLDbXaOIvN85MVh1ptptXmWW+gHyvOtN4X3nIDLTjReiMtN9CaIy0302oD\nrTbPf6w403JDLTbPYuP8ZMmhVptqrXHWmuY3a0612FhLTbPUMH9ZdKy15lppmJVmeWbVuZYa\nbKFZFhrlM8sOttJk64yyziT/su5kC422zCTLDPKVhUdbZ7ZFBlnvf8H3xMqzLTPcGnOsMcU7\nFp9ujfGWmGKJId6z+HhrzLfAEIt8pb1n9fmWGLD/DP0n+I4NJuw/YvsJ2g/wPRuM2H/G7gN0\n7/8IO8zYfsjm/Tdv/xgO2YDm/Tdv/xhbDNl9yt7t9+7+KHtM2XzMzt0v8Hc9h9hkzN5zNm6+\ncevn2GfQxpP2bb1v52fZZ9LGo7btvG3j59lo1L6zdm28a99XcNYGdG28a99X2GnWtsM27btp\n29fYatiu0/Zsu2fXV9lr2qbjtuy6ZdPX2WzcnvN2bLpjz3fYbd6WAzfsuWHL99hu4I4T92u5\nX8d32W/ihiO367hdw/fZcOR+M3druFu/Gew4c7uhm/XbrN0cthy629S92u3VbRZO3YBe7fbq\nNos9p242dqtuWzWbx6Zj95q7U7Odes1k17lbDd6o10at5rLt4J0m79Nqn06z2XfyRqO36bRN\no/lsPHqf2bs02qXPETh7A7o02qXPEew8e5vhm/TZpM0xbD18l+l7tNmjy1HsPX2T8Vt02aLJ\ncTh+A1p02aLJcWw+fo/5OzTZoceR7D5/CwENemzQ4lgUUN3AARr02KDFsWwvoIMBfov8Dkej\ngQYG+C3yOxyNBhoowHeIb3A8KmjggN4gvb8Z6KCBA3qD9P5moIMffAnw/uDtzUEJ/wG3wG6P\n3d0stPAfcAvs9tjdzUILH7A1oLtDNzcPNXzA1oDuDt3cPNTwE7QHcnPk3maih1+QRYB7A7c2\nF0X8giwC3Bu4tbko4jdgE9zWuJ3NRhN/4KqwMz6a+ANXBbYzbGPzUcVfsC5sjI8q/oJ1QW2M\n2lcFuniCKsO++OjiCaoMaF/QtmpQxhNUGdC+oG3VoIxnoDaYbTG7qkIbz0BtMNtidlWFNj7B\n1IHsCtlUHer4BFMHsitkU3Wo4zNIH8SmiD1Voo/PIH0QmyL2VIk+/oEoxJ746OMfiEKAPQFb\nqkUh/wI0Ykt8FPIvQCO8lngdVaORL/CU2BEfjXyBpwTXEa6helTyBZ4SXEe4hupRyVdwTmgN\n0fohoJOv4JzQGqL1Q0AnL6BJsR8+OnkBTQqsH1g7DJTyCpgV2+GjlFfArLDaYXVDQSsvYWmx\nGz5aeQlLi93w0cpLWFrsho9WXsLSguoG1QwHtbwG5cVm+KjlNSgvNsNHLa9BebEZPmp5DcoL\nqRlSLyT08gaSGHvho5c3kMSAegG1wkIx7wCZsRU+inkHyIyt8FHMO0BmbIWPYt4BMsNphdMJ\nDc28haPGTvho5i0cNXbCRzNv4aixEz6aeQtHjZ3w0cxbOGownWAa4aGa92Dc2Agf1bwH48ZG\n+KjmPRg3NsJHNe/BuLERPqp5D8YNpRFKH0R0E0CRYx98dBNAkWMffHQTQJFjH3x0E0CRYx98\ndBNAkWMffHQTQJFjH3x0E0CRYx98dBNAkWMffHQTQJFjH3x0E0CRA+kD0gYT5QRQ5ED6gLTB\nRDkREDu2wUc5ERA7tsFHOREQO7bBRzkREDu2wUc5ERA7jDYYXVDRTghDj13w0U4IQ49d8NFO\nCEOPXfDRTghDj13w0U4IQ49d8NFOCEOPXfDRTghDj13w0U4IQ49d8NFOCEOPXfDRTghDD6KL\nxwPRBhTthED0EJp4PCAykGgnhKIH0MPjQZFBRDshGD2EFigukGgnBKOH0ALFBRLthGD0AFrA\n/MdcJtoJoegh9ED5ixco2gmB6EE0AemCCuNSsDDs2AUfgxTCsGMXfAxSCMOOXfAxSCEMO3bB\nxyCFMOzYBR+DFMKwYxd8DFIIw45d8DFIIQw7dsHHIIUw7NgFH4MUwrBjF3wMUgjDjl3wMUgh\nDDt2wccghTDs2AUfgxTCsGMXfAxSCMOOXfAxSCEMO3bBxyBFQOxAumC0AUU7ERA7kC4YbUDR\nTgTEDqQLRhtQtBMBsQPpgtEGFO1EQOxAumC0AUU7ERA7iC4g/x+VqGgnAnI8jCYYLqhoJwJy\nPIwmGC6oaCcCcjyMJhguqGgnAnI8jCYYLqhoJwJyPIwmGC6gPExSBOR4GE0wXEAxSCGQ42E0\nwXABxSCFQI6H0QTDBRSDFAI5HkYTDBdQDFII5HgYTTwYfTDRTgTla4bRhKcSoJ0Ig/SEpxKh\nnQiD9ISnEqGdCIP0hKcSoZ0Ig/SXxw9PJcAgRVCOh9EDwwUUgxRBOR5GDwwXUAxSBOV4GD0w\nXEAxSBGU42H0wHABxSBFUI6H0QPDBZMPN+p5B+V4GD0wXDAxSCGU42H0wHDBxCCFUI6H0QPD\nBRODFEI5HkYPDBdMDFII5XgAPTx+eCoBBikCczyMFhgumBikCMzxMFpguGBikCIwx8NogeGC\niUGKwBwPowWGCyYGKQJzPIwWGC6Q/FKjntdgjofRAsMFEoMUgjkeRgsMF0gMUgjmeBgtMFwg\nMUghmOOpb+HXmdQ3wsQgRXCOp76Fxw9PJcAgRXCOh9EBwwUSgxTBOR5GBwwXSAxSBOd4GB0w\nXCAxSBGc42F08Pj938g//DGjnReA7DA6MEjvAJ0KEJAdRgcG6R2gUwECssPowCC9A3QqQEB2\nyjt4fP4X+YR2QgzSPw14Km94EqOer4COh9EAwwUQgxQCOh5GAwwXQAxSCOh4qht4OpLqVogY\npAjS8VQ38Pjyr/IE6VR4kI6H8T7DBRCDFEE6Hsb7DBdADFIE6XgY7zNcADFIEaTjKX7/8erf\n5DefbkQ7/4A6HsbzDBc8DFIE6ngYzzNc8DBIEajjYTzPcMHDIEWgjofxPMMFDu1EPD7/O+OS\ni5//x4n8RDsRBunr857KS7QTYZC+Pu+pvEQ7EQbp6+ueyiu0E2KQvr7uqbziixX1PMM6Hsbr\nDBc0DFII63gYrzNc0DBIIazjKX39y4V4KU98zY96noAdDytInsoTL6So5y+w42E8znABwyCF\nwI6H8TjDBQyDFAI7nsrHXxyIl/KHV/FRzx9oxwMLkqfyh5dO1PMb2vEw3ma4YGGQQmjHw3ib\n4YKFQQqhHU/h2y/vw0v5xev0qOcXuOOhBclT+cUbJer5Ce54GE8zXKAwSCG442E8zXCBwiCF\n4I6n7uk35+GlfPAuPOr5gHc8uCB5Kh883v1CPf/BOx7GywwXJAxSCO94GC8zXJAwSCG84yl7\n+e2leCo/QiHqQR4P42GGCxAGKQR4PIyHGS5AGKQQ4PFUPRwch5cSRkc9yOMBBslTiX2oh3g8\njHcZLjgYpBDi8TDeZbjgYJBCiMdT9G54G9tfSpwc9US/NEjvf7kd3+hQz4lfzoLxLMMFBoMU\ngjwexrMMFxgMUgjyeGqe/e409j6VL9Or5xnm8TBeZbigYJBCmMfDeJXhgoJBioDaKXn1Wxdb\nn8rX2RmnAsEgBY8apCe+D9LOeqh2GI8esLMP1FNhQLXDeNQgPUE9FQZUOxWPHorNtreinYhD\nLhhHXfGmp/IX7UQYpPBJT+UvBinCIIVPeip/0E7Eq7kZeuY/edDFrrdy8Cy0E/2eQfrm9zbA\nIEVwj4fxIsMFAoMUwT2e6S++fPD4b67OYRPaOf+bI2E8yHBBwCBFgI+H8SDDBYDXM6vnF+Dj\nmf3giUvZ8VROHIV2LvzuOBjvMVzUc8qDes7/7jgY7zFc1GOQIk55YBz27Oc8lQ+0E2KQvn3O\nU/ngpIbN9JzUwLjsyc95Kh9oJ8Igff+ap/KBQYpgHw/jtbddbHUr2ok4bYFx2nMf81T+wyBF\nwI+H8RjDRTEXJKjn0h+MYOZjVw5io1O5IEE7F/8kH8ZbDBe1BJOqh388jLcYLmoxSCH045n4\n1qVL2eZULipQD+R4GE8xXJRikELwxzPvqavnsMmpGKQI/vEwXmK4qOSyAfUwjmfaS9evYYtT\nMUgRDY6H8RDDRSE3BKjn8h9mMuuhO8ewwancEKCdG3+aB+Mdhos6vplQPaP+NA/GOwwXdRik\niBZ2Jr1zy8Xyp6KdEIN0+JnNT+Xm+IvruTk+48InPeOp3Pjjze1sFaS7p7D3qWhn6J/nwHjl\n2y6WvhXtRNyennHicx7xVO78+d52IHoYjzBcFJEwvHpufSCDGY9kHMLCp2KQIrocD+MNhosa\nUmZXz71P3Ifxxs6nop2IlNkZRz7jiY1P5chc6hn/kbswnki6po4YpIg+dsY/kRUST+VumYb0\nOR7GC4e6WPJWtBORNjnjzMc/4Knc/cy+diB6Rj9wrH7mp1qReAS72jFI57tY7la0E5E6N+PQ\nR5f3VO5/alc7ED2M8ke7WOxWtBORPDbj0gdX91QSPrapHYgeRnWGi9mkT62ejM9dY2j1/AtY\n6lQMUkSz42EUZ7iYzICh1ZPywSuMLD7iABY6FYMU0e14GLUZLuYyZGb15HzyPANrj9n/Mqdi\nkCLaHQ+jNMPFVAaNrJ6kj55lXOlR61/kVAxSRL/jYVRmuJjJsInVk/XZczAq73cq2okYNjHj\n3McV3u5UBg6snrQP9yu83aloJ2LgwIx7H1Z3t1MZOq968j7dre5up6KdiKHzMg5+VNnNTmXw\nuOpJ/HivspudinYiBo/LuPhBVfc6leHTqifz852q7nUq2okYPi3j5McU9VQyP7+XHYgeRtHz\nXTS+Fe1ETBiWcfNDanoqqT+wlR2IHkZNhos5TJlVPbk/UVJzzt7bnopBimh7PIySDBdTmDSq\nepJ/ZH7JWWtveioGKaLv8TAqMlzMYNqk6sn+mckV52295akYpIjGx5Nd8Fo9hosJTBy0oZ7O\nx9M4SA1PZeqc6sn/qWn15u683akYpIjWx8Mox3AxnMljqmfAj80pN3vlzU7FIEX0Ph5GNYaL\n0UyfUj0jfm5Ctfkbb3UqBimi+fEwijFcDKZgSPUM+UFusS1ORTsRBUMybj+11g6nUjKjesb8\nJLXWDqeinYiSGRnHn1nKUxnzkzvYgehhlLrTRZNb0U5E0YiM60+s5KkM+tEN7ED0MCoxXIyk\nbEL1jPrZQZXqtt3iVAxSxALHwyjEcDGQwgHVM+yHRxSqXHaDUzFIESscD6MOw8U4SudTz7if\nTq9Tu2v8qRikiCWOh1GG4WIYxeOpZ+CP55apXjX8VAxSRPV4jAjkVKn++bGUT6eekT9PqrL2\nqWgnonw6RgRyitQXGAhgOPUMLcApsvSpaCcCMBwjAyk1CBWGAVj0ynYQFSg1ErrA3op2IhCz\nMUKwTokxIPa8sB1L4EoMgTEa1Q5kNkSJdf65OATIaFA9kNEQJSAuoKdCmYxpBzMaIQaMOain\ngplMPWNrECqsfCraicBMBogBxgXyVECDqWdokfoCaUWIp6KdCNBg5TkAuVj2VLTToEr1z2dW\n4d2KdiJQcxUHAeVi1VPRToMyBmkkBimCNVdpErJ2Q6uTBGPF6XWSoI1VGQXGDPl1kjBIEbSx\nDFJ+nRxwU6lnXJ1bP83bMOpUGBseUSgD3lR1WWCMMKRQAsCh1DOskEEaBnAokB7gUGVZALoA\nnQpxJo4d4lAGaUiluyBnwuhBzlQVBsYE40rdQzsRyJmKwoB0seKpaKdBqeWCRLkV7URARypJ\nA9TFgqeinQa1DNIgDFIEdaSCOKRuhOEiE+pE69mB6FkvSIxbYWx3dLGrcCeanwdG+8OLXcUg\nRXAnMkiDil0EPJB6hhS7+oPk5QJOhbHcCdUALTCqGaQRoOdRz4hqBmkE6HnUM6LaxZ9j77b6\nVODjqGdAOYM0APg46hlQziANAD6OegaUu/Zj8NUWXwrcjnpGlFsySMWngp9GPfn1DFI++GnU\nk1/PIOWDn0Y9+fUu/RR+s6WXgrejngH11gxS6ak0GEY96QUNUjoNhlFPesFFg1R5KtqZ+zTD\n95UfauCi8FRazKKe7IqrBqnuVLQz+WGGcIPEf1g7k0tOCkULF2Wn0mOUhewYpLElq25FO7Of\nZRg3SPxntTO7pkEaXLPmWe3MrjklFU1cFJ1Kl0nWsWOQBtesuRXtTH+Uodwg8R/VzvSiBml0\n0YpHtTO96IRYtHFRcip9BjFIuTUNEv/NMYOoJ7WoQeK/aZAaFDVI/DcNUoOiZ3+g0VILLqWR\nHfXkFl04SAWn0moO9WRWNUj8Fw1Sg6oGif+iQWpQ9eTnW+10+qW0sqOe1KorB2n6qTQbQz2J\nZQ0S/z2D1KCsQeK/Z5AalD338WYr9VJK6k5+jmF96SAtciraaVDXIPGf006DugaJ/5x2GtQ9\n9elh5hkuqK91qzv5NYaetYM091YYGyUUnvoYo7BB4j+mnQaFDRL/Me00KGyQ+G/1Kzz1LYae\nxYM081a0U/MUw7tB4j+lnZrKBmlK5XlPaaemskGaUnneU9qpqTwsGw1dTDyVljOoJ6uyQeK/\nZJAaVDZI/JcMUoPKBon/kkFqUPnEZ1vu00upKj3tIYb41YO0wqlop0Fpg8R/SDsNShsk/kPa\naVDaIPEf0k6D0ssHadataKfqGYZ5g8R/RjtVtQ3SpNpzntFOVW2DNKn2nGe0U1V7SDqauph0\nKl0nMEhJpQ0S/5WhE6gnp7ZB4r9ikBrUNkj8VwxSg9oGif+KQWpQ+/An+25zyqkwtkkrPuUR\nRnGDxH9EOw2KGyT+I9ppUNwg8R/RToPiBon/iHYaFDdI/DfGDqCelOIGif+GQWpQ3CDx3zBI\nDYobJP4bBqlBcYPEf8MgNSh+9IOdlznhVBjLBFaf8ASjukHiP6GdBtUNEv8J7TSobpD4T2in\nQXWDxH9COw2qGyT+C4P7V09GdYPEf8EgNahukPgvGKQG1Q0S/wWD1KC6QeK/YJAaVN8hSONP\nRTuFDzDkGyT+A9opLG+Q5pXXTukDDPkGif+AdgrLG6R55bVT+gBD/sHPtXbR/VS006C8QeI/\noJ0G5Q0S/wHtNChvkPgPaKdBeYPEf0A7DcobJP4D2mlQ3iDxH9BOg/IGif+AdhqUN0j8B7TT\noLxB4j+gnQblDRK/fvP2m+sxSNPK235pfUZ5g8Sv37z95noM0rTytl9an1HeIPHrN2+/uR6D\nNK287ZfWZ5Q3SPz6zdtvrscgTStv+6X1GeUNEr9+8/ab6zFI08rbfml9RnmDxK/fvP3megzS\ntPK2X1ke0v4WQWrevnYq6xukefV7l7f9jPIGafvytp9R3iBtX972M8of+9jjMbTbweWbt6+d\nyvpHyx/61OMxtNvB5Zu3r53K+ofLH/nQ4zG028Hlm7evncr6x8sbpL3L235SeYO0d3nbTyrv\n/4y0eXnbzynv39rtXt72U8qP/kt+kS0wSCIJGCSRBAySSAIGSSQBgySSgEESScAgiSRgkEQS\nMEgiCRgkkQQMkkgCBkkkAYMkkoBBEknAIIkkYJBEEjBIIgkYJJEEDJJIAgZJJAGDJJKAQRJJ\nwCCJJGCQRBIwSCIJGCSRBAySSAIGSSQBgySSgEESScAgiSRgkEQSMEgiCRgkkQT+B8PksYM7\nIRlbAAAAAElFTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Basic tree\n",
    "# 基础树形图\n",
    "# layout表示布局方式，circular表示是否为环状树形图\n",
    "ggraph(mygraph, layout = 'dendrogram', circular = FALSE) + \n",
    "    # 画边\n",
    "    geom_edge_diagonal() +\n",
    "    # 画节点\n",
    "    geom_node_point() +\n",
    "    # 设置主题\n",
    "    theme_void()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.1.2 通过嵌套数据绘制树形图 Dendrogram from a nested dataframe\n",
    "另一种常见格式是嵌套数据。下面的代码演示如何轻松地将数组转换为嵌套数据。嵌套数据结构如下图所示，嵌套数据每一列代表一个节点，行代表节点到节点的路径\n",
    "\n",
    "![](imgonline/Nested_DataFrame.png)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**建立数据**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 8 × 3</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>level1</th><th scope=col>level2</th><th scope=col>level3</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>CEO</td><td>boss1</td><td>mister_a</td></tr>\n",
       "\t<tr><td>CEO</td><td>boss1</td><td>mister_b</td></tr>\n",
       "\t<tr><td>CEO</td><td>boss1</td><td>mister_c</td></tr>\n",
       "\t<tr><td>CEO</td><td>boss1</td><td>mister_d</td></tr>\n",
       "\t<tr><td>CEO</td><td>boss2</td><td>mister_e</td></tr>\n",
       "\t<tr><td>CEO</td><td>boss2</td><td>mister_f</td></tr>\n",
       "\t<tr><td>CEO</td><td>boss2</td><td>mister_g</td></tr>\n",
       "\t<tr><td>CEO</td><td>boss2</td><td>mister_h</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 8 × 3\n",
       "\\begin{tabular}{r|lll}\n",
       " level1 & level2 & level3\\\\\n",
       " <fct> & <fct> & <fct>\\\\\n",
       "\\hline\n",
       "\t CEO & boss1 & mister\\_a\\\\\n",
       "\t CEO & boss1 & mister\\_b\\\\\n",
       "\t CEO & boss1 & mister\\_c\\\\\n",
       "\t CEO & boss1 & mister\\_d\\\\\n",
       "\t CEO & boss2 & mister\\_e\\\\\n",
       "\t CEO & boss2 & mister\\_f\\\\\n",
       "\t CEO & boss2 & mister\\_g\\\\\n",
       "\t CEO & boss2 & mister\\_h\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 8 × 3\n",
       "\n",
       "| level1 &lt;fct&gt; | level2 &lt;fct&gt; | level3 &lt;fct&gt; |\n",
       "|---|---|---|\n",
       "| CEO | boss1 | mister_a |\n",
       "| CEO | boss1 | mister_b |\n",
       "| CEO | boss1 | mister_c |\n",
       "| CEO | boss1 | mister_d |\n",
       "| CEO | boss2 | mister_e |\n",
       "| CEO | boss2 | mister_f |\n",
       "| CEO | boss2 | mister_g |\n",
       "| CEO | boss2 | mister_h |\n",
       "\n"
      ],
      "text/plain": [
       "  level1 level2 level3  \n",
       "1 CEO    boss1  mister_a\n",
       "2 CEO    boss1  mister_b\n",
       "3 CEO    boss1  mister_c\n",
       "4 CEO    boss1  mister_d\n",
       "5 CEO    boss2  mister_e\n",
       "6 CEO    boss2  mister_f\n",
       "7 CEO    boss2  mister_g\n",
       "8 CEO    boss2  mister_h"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# libraries\n",
    "library(ggraph)\n",
    "library(igraph)\n",
    "library(tidyverse)\n",
    " \n",
    "# create a data frame \n",
    "data <- data.frame(\n",
    "  level1=\"CEO\",\n",
    "  level2=c( rep(\"boss1\",4), rep(\"boss2\",4)),\n",
    "  level3=paste0(\"mister_\", letters[1:8])\n",
    ")\n",
    "data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**将数据转换为边列表**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 2 × 2</caption>\n",
       "<thead>\n",
       "\t<tr><th></th><th scope=col>from</th><th scope=col>to</th></tr>\n",
       "\t<tr><th></th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><th scope=row>1</th><td>CEO</td><td>boss1</td></tr>\n",
       "\t<tr><th scope=row>5</th><td>CEO</td><td>boss2</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 2 × 2\n",
       "\\begin{tabular}{r|ll}\n",
       "  & from & to\\\\\n",
       "  & <fct> & <fct>\\\\\n",
       "\\hline\n",
       "\t1 & CEO & boss1\\\\\n",
       "\t5 & CEO & boss2\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 2 × 2\n",
       "\n",
       "| <!--/--> | from &lt;fct&gt; | to &lt;fct&gt; |\n",
       "|---|---|---|\n",
       "| 1 | CEO | boss1 |\n",
       "| 5 | CEO | boss2 |\n",
       "\n"
      ],
      "text/plain": [
       "  from to   \n",
       "1 CEO  boss1\n",
       "5 CEO  boss2"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 8 × 2</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>from</th><th scope=col>to</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>boss1</td><td>mister_a</td></tr>\n",
       "\t<tr><td>boss1</td><td>mister_b</td></tr>\n",
       "\t<tr><td>boss1</td><td>mister_c</td></tr>\n",
       "\t<tr><td>boss1</td><td>mister_d</td></tr>\n",
       "\t<tr><td>boss2</td><td>mister_e</td></tr>\n",
       "\t<tr><td>boss2</td><td>mister_f</td></tr>\n",
       "\t<tr><td>boss2</td><td>mister_g</td></tr>\n",
       "\t<tr><td>boss2</td><td>mister_h</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 8 × 2\n",
       "\\begin{tabular}{r|ll}\n",
       " from & to\\\\\n",
       " <fct> & <fct>\\\\\n",
       "\\hline\n",
       "\t boss1 & mister\\_a\\\\\n",
       "\t boss1 & mister\\_b\\\\\n",
       "\t boss1 & mister\\_c\\\\\n",
       "\t boss1 & mister\\_d\\\\\n",
       "\t boss2 & mister\\_e\\\\\n",
       "\t boss2 & mister\\_f\\\\\n",
       "\t boss2 & mister\\_g\\\\\n",
       "\t boss2 & mister\\_h\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 8 × 2\n",
       "\n",
       "| from &lt;fct&gt; | to &lt;fct&gt; |\n",
       "|---|---|\n",
       "| boss1 | mister_a |\n",
       "| boss1 | mister_b |\n",
       "| boss1 | mister_c |\n",
       "| boss1 | mister_d |\n",
       "| boss2 | mister_e |\n",
       "| boss2 | mister_f |\n",
       "| boss2 | mister_g |\n",
       "| boss2 | mister_h |\n",
       "\n"
      ],
      "text/plain": [
       "  from  to      \n",
       "1 boss1 mister_a\n",
       "2 boss1 mister_b\n",
       "3 boss1 mister_c\n",
       "4 boss1 mister_d\n",
       "5 boss2 mister_e\n",
       "6 boss2 mister_f\n",
       "7 boss2 mister_g\n",
       "8 boss2 mister_h"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 10 × 2</caption>\n",
       "<thead>\n",
       "\t<tr><th></th><th scope=col>from</th><th scope=col>to</th></tr>\n",
       "\t<tr><th></th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><th scope=row>1</th><td>CEO  </td><td>boss1   </td></tr>\n",
       "\t<tr><th scope=row>5</th><td>CEO  </td><td>boss2   </td></tr>\n",
       "\t<tr><th scope=row>11</th><td>boss1</td><td>mister_a</td></tr>\n",
       "\t<tr><th scope=row>2</th><td>boss1</td><td>mister_b</td></tr>\n",
       "\t<tr><th scope=row>3</th><td>boss1</td><td>mister_c</td></tr>\n",
       "\t<tr><th scope=row>4</th><td>boss1</td><td>mister_d</td></tr>\n",
       "\t<tr><th scope=row>51</th><td>boss2</td><td>mister_e</td></tr>\n",
       "\t<tr><th scope=row>6</th><td>boss2</td><td>mister_f</td></tr>\n",
       "\t<tr><th scope=row>7</th><td>boss2</td><td>mister_g</td></tr>\n",
       "\t<tr><th scope=row>8</th><td>boss2</td><td>mister_h</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 10 × 2\n",
       "\\begin{tabular}{r|ll}\n",
       "  & from & to\\\\\n",
       "  & <fct> & <fct>\\\\\n",
       "\\hline\n",
       "\t1 & CEO   & boss1   \\\\\n",
       "\t5 & CEO   & boss2   \\\\\n",
       "\t11 & boss1 & mister\\_a\\\\\n",
       "\t2 & boss1 & mister\\_b\\\\\n",
       "\t3 & boss1 & mister\\_c\\\\\n",
       "\t4 & boss1 & mister\\_d\\\\\n",
       "\t51 & boss2 & mister\\_e\\\\\n",
       "\t6 & boss2 & mister\\_f\\\\\n",
       "\t7 & boss2 & mister\\_g\\\\\n",
       "\t8 & boss2 & mister\\_h\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 10 × 2\n",
       "\n",
       "| <!--/--> | from &lt;fct&gt; | to &lt;fct&gt; |\n",
       "|---|---|---|\n",
       "| 1 | CEO   | boss1    |\n",
       "| 5 | CEO   | boss2    |\n",
       "| 11 | boss1 | mister_a |\n",
       "| 2 | boss1 | mister_b |\n",
       "| 3 | boss1 | mister_c |\n",
       "| 4 | boss1 | mister_d |\n",
       "| 51 | boss2 | mister_e |\n",
       "| 6 | boss2 | mister_f |\n",
       "| 7 | boss2 | mister_g |\n",
       "| 8 | boss2 | mister_h |\n",
       "\n"
      ],
      "text/plain": [
       "   from  to      \n",
       "1  CEO   boss1   \n",
       "5  CEO   boss2   \n",
       "11 boss1 mister_a\n",
       "2  boss1 mister_b\n",
       "3  boss1 mister_c\n",
       "4  boss1 mister_d\n",
       "51 boss2 mister_e\n",
       "6  boss2 mister_f\n",
       "7  boss2 mister_g\n",
       "8  boss2 mister_h"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# transform it to a edge list!\n",
    "edges_level1_2 <- data %>% select(level1, level2) %>% unique %>% rename(from=level1, to=level2)\n",
    "edges_level2_3 <- data %>% select(level2, level3) %>% unique %>% rename(from=level2, to=level3)\n",
    "edges_level1_2\n",
    "edges_level2_3\n",
    "edge_list=rbind(edges_level1_2, edges_level2_3)\n",
    "edge_list"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**绘图**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAABlBMVEUAAAD///+l2Z/dAAAA\nCXBIWXMAABJ0AAASdAHeZh94AAAcDElEQVR4nO2ci5IlVa4sd///T4/BQNNVtR/50FqKCLnf\ncxgw60opwlPZFwY7j18AcJtH9wIACXBIAAVwSAAFcEgABXBIAAVwSAAFcEgABXBIAAVwSAAF\ncEgABXBIAAVwSAAFcEgABXBIAAVwSAAFcEgABXBIAAVwSAAFcEgABXBIAAVwSAAFcEgABXBI\nAAVwSAAFcEgABXBIAAVwSAAFcEgABXBIAAVwSAAFcEgABXBIAAVwSAAFcEgABXBI+jweWJIH\nRfI8HlySPhhS5/HgkgxAkDockgUIUodDsgBB8nBHDmBIH+7IABTpwx0ZgCN9OCQDcKQPh2QA\njvThkAzAkT4ckgE40odDMgBH+nBIBuBIHw7JABzpwyEZgCN9OCQDcKQPh2QAjvThkAzAkT4c\nkgE40odDMgBH+nBIBuBIHw7JABzJ88CSASiSh0NyAEXycEgOoEgeDskBFMnDITmAInk4JAdQ\nJA+H5ACK5OGQHECRPBySAyiSh0NyAEXqPH7/AYTBkDockgUYUodDsgBD6nBIFmBIHQ7JAgyJ\n8/jyH6AKgsThkDxAkDgckgcIEodD8gBB4nBIHiBIm8ePPwFJ8KMNh2QCfrThkEzAjzYckgn4\n0YZDMgE/0jye/inogR5pOCQX0CMNh+QCeqThkFxAjzQckgvoUebx8i9ADOwowyHZgB1lOCQb\nsKMMh2QDdpThkGzAjjCPt38JSiBHGA7JB+QIwyH5gBxhOCQfkKPLdze4EgY5uvxwgyxdcKML\nh2QEbnThkIzAjSxP1GBLFtTIwiE5gRpVnppBlyqYUYVDsgIzqnBIVmBGlOdi0KUKZkR5IQZf\noiBGFA7JC8SIwiF5gRhNXnpBmCZ40YRDMgMvkrzRgjFJ0CIJh+QGWhR5ZwVjkqBFkbdWUKYI\nVgR5LwVlimBFkA9ScCYIUvT45ARngiBFj49OkKYHTuT4rARpeuBEjgNKsCYHStQ4YgRrcqBE\njUNG0KYGRsQ4JgRtamBEjINC8CYGQrQ46gNvYiBEi8M+EKcFPqQ4rgNxWuBDihM6MCcFOpQ4\nYwNzUqBDiVM2UKcENoQ4JwN1SmBDiJMycCcEMnQ46wJ3QiBDh9MukKcDLmQ4rwJ5OuBChgsq\nsCcDKlS4YgJ7MqBChUsm0KcCJkS4JgJ9KmBChIsi8CcCIjS46gF/IiBCg8seEKgBHiS4rgGB\nGuBBghsaMCgBGhS4ZQGFCmBBgJsScCgAEvq57QCJ/eCgnfsKkNgPDtopUIDFdlDQTYUBLLaD\ngm5KDKCxGww0UyQAj80goJeq/vHYDAJ6Kesfkb3QfyuF9WOyFervpLR9VHZC+51wSDHQfiPF\n5eOyEcrvo7x7ZPZB920sqB6bbVB9F0uaR2cXNN/EouLx2QTF97Cqd3w2QfE9LOsdoT3QewsL\na8doC9TewdLWUdoBrXfAIcVB6w0sLh2nDVD6fpZ3jtT90Pl21leO1P3Q+XY2VI7V7VD5brY0\njtbd0PhmNhWO181Q+F629Y3YvdD3VjbWjdmtUPdOtraN2p3Q9kY2l43bjVD2PrZ3jdx90PU2\nGqrG7jaoehctTaN3FzS9iaai8bsJit5DW88I3gM9b6GxZgxvgZp30NoyindAyxtoLhnHG6Dk\n9XR33D1/BJS8nvaO2xcYAB0vR6BigRXSoeLVSDQssUQ0NLwYkYJF1siFgtci06/MIqHQ71KE\n6hVaJRHqXYlUu1LLxEG7CxErV2ydLCh3HXLdyi0UBN0uQ7BawZVSoNpVSDYruVQENLuGh2ix\nomv5Q7FL0K1V9cLdodYVSLcqvZwttLoA8VLF1/OEUuuR71R+QUPotByDSg1WdINKq7Fo1GJJ\nK2i0GJNCTdb0gUJrsenTZlET6LMUozqNVnWAOiuxatNqWXlosxCzMs3W1YYy67Dr0m5hYeiy\nDMMqDVdWhSqrsGzScmlJaLIG13+p2nRtPSiyBN8aXb8AalBjBdYtWi8vAy3ex/2j7r6/BHR4\nm4AKAyJ0Q4V3iWgwIkQrNHiTkAJDYvRBgfeI6S8mSBP0d4ekv00PitIB9d0gq7ykr8J+KO86\ncd3FBdoI3V0msLrASLuguqtENhcZags0d5HQ4kJjrYfirhHbW2ywxdDbJYJrC462Emq7QnRr\n0eGWQWvnSf8vXMLjrYHSTpNfWfqXYgVUdpYRjY0IWQqNnWRIYUNi1kFh5xjT15igRdDXKQbV\nNShqBdR1hlFtjQp7G9o6wbCyhsW9B2UdZ1xX4wLfgK4OM7CqgZGvQlVHGdnUyNCXoKmDDC1q\naOzzUNQh5v5LM2ODn4SejjC5pbnfkFPQ0gGGlzQ8/jEo6TPjOxpfwAHo6CNURAWfoaJP0NAv\nSvgMDb2Hv9X+P/TwAfp5C/X8hireQj3voJ0/oIx30M4bKOcL1PEGynkN3XyDQl5DN6/gb69/\nQiUvoZoXUMwz+Lq8gmKeQy8voJjn0MtTqOUlVPMUankGrbyBcp5BK0+glLdQzxMo5Sd08gEK\n+gmd/IBKPkJFP6CS79DIASjpOzTyDQo5BDV9g0K+Qh/HoKdvUMhX6OMgFPUV+vgCdRyGqr5A\nHX9CGyegrD+hjT+gjFNQ1x9Qxn/QxUko7D/o4jdUcRoq+w1V/AtNXIDS/oUm/oEiLkFt/0AR\n/4ceLkJx/4ce/oYaLkN1f0MNf0ELN6C8v6CFX5RwE+r7RQl/QQc3oUA6+EUFBVAhFdBABZQ4\nvoHxBdQwvsbpBUzPX8b0IofnHx6/kuFVzo4/O30tw7ucHX92+mJmlzk6/ejw9Yyuc3L4ydmX\nMLnQwdkHR1/F4ErnRp+bfCFzSx2bfGzwtYytleBQydhapwafmns5U4sdmnto7B0MrXZm7Jmp\n9zC025mxZ6bexMxyR6YeGXofI+udGHpi5q1MLHhg5oGRdzOw4nmR5yVuYF7J4xKPC9zCvJbH\nJR4XuIdxNU8LPC1vF+N6nhZ4Wt42phU9LO+wuJ0Mq3pW3Flpm5lV9qi0o8L2M6ruSWEnZVVg\nVN+Twk7KKsGkwgdlHRRVhEmND8o6KKoKgyqfE3VOUiHmlD4m6ZigUsxpfUzSMUG1GFP7lKBT\ncsoxpfghOYfEVGRI9cSEtQypfkbMGSlFmVH+iJQjQsoyo/0RKUeE1GVE/RNCTsiozIj+J4Sc\nkFGaCQIGZBwQUZ0BCvIj5ifUZ4CD/Ij5CQ3IlxCfMD6gB/Ea0gOm53Mh3kN6wPR8NqSLCM8X\nHs+IdBPh+cLjORGuIjtedjovwl1kx8tOZ0a2jOh00eHsyLYRnS46nB/ROpLDJWdzJNpHcrjk\nbJYkCwnOFhzNlGQjwdmCo7kSrIRosI9gJbnRcpP5EuwkN1puMmNypZAMNpIrhWSwkVwpscli\ng3kTq4VgsJNYLanBUnPZkyqGXLCVVDGhuUJjBZBqJjRXaKwEQtVkxspMlUGom8xYmalCyJRD\nKthMppzIVJGhYsi0E5kqMlQOkXoIBbuJ1EMo2E2knsRQiZmiSBREJthOoqDATIGR0ghURCTY\nT6AiIsF+AhXlRcpLlEego7xIeYkCyZNEImggTxKJoIE8SSSCBvIkxSWKC5RJnCYCQQdxmggE\nHcRpIhB0EKcpLVBanljSRJEHWkgTFZYnLE4yYaqIAz2EqSIO9BCmijjQQ5iqrDhZacLJkkUa\naCJLFmmgiSxZpIEmsmSRBprIkhWVJipMPlG6CANdROkiDHQRpYsw0EWULsJAF1G6CANdROki\nDHQRpYsw0EWULsJAF1G6CANdROlKCpOUZQRJwsgCbSQJIwu0kSSMLNBGkjCyQBtJwoKyBEWZ\nQpAyokAfQcqIAn0EKSMK9BGkjCjQR5AyokAfQcqIAn0EKSMK9BGkjCjQR5AyokAfQcqIAn0E\nKSMK9BGkjCjQR5AyokAfQcqIAn0EKSMK9BGkLCdKTpI5BDnLiZKTZBA50kgCjeRIIwk0kiON\nJNBIjrSYJI9HTJQ5BElLCfJ4BEmZQpK0kByPR5KUIURJS4mR5GQKUdJSYiQ5mUKUtJAYUf/f\n7TEkSUvJkfQPgOYQJC0mSFCSQeRIIwk0kiONJNBIjjSSQCM50kgCjeRIIwn0kfMP7YJevyAp\nYwhyFpQkJ8oYgpwFJcmJMoYgZ0FJcqKMIchZUJKcKGMIchaUJCfKGIKcBSXJiTKGIGdBSXKi\njCHIWVCSnChjCHIWlCQnyhiCnAUlyYkyhiBnQUlyoowhyFlQkpwoYwhyFpQkJ8oYgpwFJcmJ\nMoYgZ0FJcqKMIchZTJKg/xNpY0hylhMkSMoUkpzlBAmSMoUkZzlBgqRMIclZTpAgKVNIcpYT\nJEjKFJKc5QQJkjKFJGc5QYKkTCHJWU6QIClTSHKWEyRIyhSSnKUEefz1r5ukhBlClLOcHEFS\nhhDlLCdHkJQhRDnLyREkZQhRznJyBEkZQpSzkByPf/4fGBElLSZGkJMpREmLiRHkZApR0mJi\nBDmZQpS0mBhBTqYQJS0mxuNXjpQZZDmLiZEkZQZZzmJiJEmZQZazmBhJUmaQ5SwmRpKUGWQ5\ny4jx+ON/wIMwZzEpkqSMIMxZTIokKSMIcxaTIknKCMKcxaRIkjKCMGcRKf6x8e//ggF/CItw\nlhKCQzKDQxKEQ/KDQxKEQ/KDQ9Lj8YtDcuO3Kw5Jhz+lRAQaQJyzlAxRUgYQ5ywlQ5SUAcQ5\nS8kQJWUAcc4CMjye/AG0yXOWEiFKSj55zlIiREnJJ8+Zf4THf39MkZIPh6THHyZSpMTzQ5e/\nNPsEjxd/BGF+6PJ3Zp+AQzIkUFpIgCgn+QRKcw/w+PM/QpzE88VTiDT3AI8n/+GeKZ4nh2Qv\nLWR/DskJDkkPDskQDkmPpzbcQ4UT6cx8/8fX/wyREs5zWebSQtbPkpJNprOQ9bOkZJPpzHv9\nx7c/CZGSDYekx3cJIVKieenKW5r19j8dcEnyvDwgb2fW23NIhrz+nchaWsbyHJINb+7HWprz\n8o+ff5YhJRkOSQ8OyY93zqylZeweJiWYWGcZu4dJCSbWmfHuzwRkSMkl15nx7k8FZFiJJddZ\nxOppUnLJdea7+lMTGVJiCXbmu/onKcbRYgl2Zrv54/mfR0hJJdmZ7eafpfhmSyXZmevijxd/\nESElFQ5Jj1flR0gJ5ZAnV2mme7/unkuS5dDxuDoz3ZtDMuTY70Km0hLW5pAsOHg7ptI8137T\nfIKUTDgkPTgkP95oSpAWsPVhQ9AJh6THidOxzJfIWy8BX7+ApU8ogjbSnTku/f43HX5LUiTe\nmeHO31fOk5JHvjPDnT+0/umvoYFzh+TozG/ls4fjlzCPHw5OHpYBfiufPhy/iHGcPSRDZ3Yb\nn3biFzEPDkkPDsmPz0r8pbkt/HPfQClpcEh6cEiGXFHkJs1s3yfrBkoJ48rHz06a/brXTgs2\ncu1szKR5rXvsw2UvJYtrHz83aVbbPluWQxLn8tV4SbPa9mDb9lKiuH41VtKclj1aNockxBRp\nTsvecGKVM4op0ox2fbrq4f6NgiYxRpr7qvdEwWru3YyRNJ9Vn28aKSWHu3p8pNls+mJRDkmZ\nux8/I2k2m54p2l1KDPdPxkaay6Lneua3JAkKTsZGmsuiBYdkkzWGit97XKSZ7PlqzUwpIdTI\nMZHmvWbNfcEaRknzWPPs18r865bBLGkWW75c8nT3FnEzGCbNe8k6WVBN3b1YSHNY8vWOoVIS\nqFTjIM1gxzcrhkoJoPLjZ+HMYMcrBXtL8afYjIE0/RWv9csltVJ8LgbO9FesPiSDyPYMdCa/\n4bsFLzYvn9mdic6cF7xavHxmdxaIkXemvuCSY1EPbc7l7p2/fuL7LXEin9qb69U7f/2M17tx\nK+KpvbnRvPFvSdrrLXKiHtuaZVq0nUlvt/BUpHM7c6t346+f8nL3bsFYijMrP2/K0oR3+7Ra\nrhRj1koRlqa72sfNcqX4svbjpyzNd7PVhwYXWH0outJkN7v/cfKVYsvqj5+wNNXFPu8VLMWV\nHUpUpdnuVVG5anhTtihRdSa616YzEU3vSUnftl8/zbU2ORFN78mRLoOlSW5V02aNWTjINmma\nziS32nclkvEtqfpsuUpTXGqjE8n8lkyXJrjToZXK+hYswJHx0lxX2isOPrH3RgSl6a10bKNo\nKX7s1qEnTW6jgwtFS7Fj98dPUJrpQqV1y3XgBs70Fqr9ILl+3rzA2S+5fY6uU9y2WAte4Owv\ntNYpL9H082ZFdceelyS1TXnXplKs6Pr4iUlTWub4LuFSnOhUoSTNcpcVVSsVYUSrCiVnQrs0\nn4dQEz4s6dfy66ezSvt16FRhwxoTll8/mU0ErkOmCxcERMg4U1lEwIlOGSYs69bx6yeyx7r3\nnUtahYgGEWcaa5zbYmHPGnVYgLMvSGxxcomVHyyJPhzA2VcMl1has0QfDuDsKwpLrP0AOX7e\n9JGSoOBMYIezKyxuWaARfXCmt8Ly0gw/b/Ks7tTvkto3WN6xoRR51D5+AtK6Fzg/f4AUdRQV\ndEuzm39hYS6pFpzpzd/y5fH7vEmDM73xWxre9CNTkBVg9yq3Dr+yr50UaZAmN3xTv9t+ZgTK\nAtxe5s7R2/rlkp6CtIzR19Z1k6LLxibNfkvqGy3uhEt6gnz9Zq9z3+CtJ8ElfWNrj2Zfv67B\ne99tMymqOHzGzF7orrEzpIjiUb7ZG900dYYUTTw+fnavdMvU7eVySb/Bmd7U/R8bs8+bIEbV\ne73TLTMbuuWS/gZnejNbCvL6vOnR0Z/VJe0f2dKslxQ9vD5+Zq/1/oFTpMjhV7zVe717YFex\n4y/JsHin93r7vLZjGH5Jbd05ff32znuY3sLoS+rr/d4Pb361fYb5/rQ1vrUbvdtbZ7W2OvaS\nkBY3y/rHXbEu3ejl3jmqudWRl4QzvVG3J3V/ngZeUndn3fMVJ/V3YvR5U6G9sv4HqA26P6e/\n03GX1N+YwGujNadgzCApIggUpvDehI2RqHTUJUnUJbGEzhiJRkUe4YJGWxqPUJlSMUSk0TGX\nJFKWyBo5Q0r2VNnDAZWuVPZQGCLzVZFZRB+ZqmQW6Z8h06fQQ9TRaUrnId0jhJoQWkUcoaaE\nVmmdINSm1FOkUSpK6SmNA4qeL9Vm/CVJ9SS1jPvzq7Y0kdKMWEtar1DT8yOdhF+SWkli71DL\n48W6rEsbfElyHak9x/npsXIFkatIbqH9T5frUvBBaug1pPeg3Q+ve7Zgl6GXJFiQ4Ep7ny1Z\ngKBeKRT7kXyR9j1askkPKX1I1qP5qF1PrnywZpOBl6TZjuir5Pdg1SLjLkm1HNF3acuDRXus\nzRt2SbLdqD5rw3NHOAk7pNo0qtIGH5Lwux91Sbo96z5s9WOFkwuv1otwzbrf5dWPFX5blZ/W\ninIxwu/T0qcKt1gdOOaSpHtRftrCh0o7cZDSgXQt2o9b9czqR2q3GHJJ2q2Iv1JrHln+xHlS\n9iNeivo7ZfFE+RIDLkm+EvkF9SNPfOBu9BuZ98CJp+5+SQaF6K+o/jyDCjkkxyeKv/gGDXr8\nI5uNWPQh/0Tp//pgzSNN/luEXXjUIf9mKT9tzRMNpGzFpA31V0v932LycGJ8SS5lqL9b6v9e\n7eRn7mDqv3dW/kgOSfmh6xndr+jLb9OfvJR92NQr74xDkn7oanyaUH9o3aPWvEjq/S1/6lKM\nilBfVfFJqx/qtetKnHoQ37XsSepfjA2PtbskqxrEl616kFV76lI2YVWuujPtQ1r1alq5XoZX\nC+KPLXqOeMpNz/U6JLNyxb/VHJLDc5fgVoL2O1bzGLPu1r3wRpdk14H2c5Wesu+5fgvXY1eB\n9sIlT7HrzvDB1fg1oP3gioese3m0u9v85FIMC9BeWeUZex/suXMljvmldy54hvaXYvujLS7J\nMr700vcfYdmctpTlWBar7Uz5kFa+kpa+y/BML/3o20+QTtfybP1DMi1W+pvNIXk9uwTX8Mrv\n2t0HmPZm++wKlu5nWiyHJPhs9Uui1wXPvvnztr1JS1mLba3Szjgku4ffxTe58sPv/fjaF0a5\nt9an38I4uPLqwoekXFvv02/hHFz4fbv108atrX7VZS/JOrfw0+/8ME7aHn8d69zCT+eQLB9/\nGe/Ywo+/8bOr3xXh1voffxXv1MKP55A8H38V79TCrxyH5Pn4i+Bs1fOv/6hwqBHPv8TcF331\n8+cekvtLdQWcLXs+h2T7/AvYR9YNcPkn7TsTlrIK+0qFnXFIxgPO4p9Yd8DVH1z/kuh2JjPg\nJDhbOIBDsp5wioDAuhEu/tyGV2SwlEUEBNaNIHtITKgmIa/uB/zaj+nm0RohdUkRcWVDcEje\nE04QEVd2BIfkPeE4EYXqjrj0UzveD9nG1EYcJSOt7AgOyX3EQXC2dgaH5D/jECFhZWNwSP4z\nDhESVjbGlR+SDTN0xhFSssrOmHxIOUE+ExNVNQiHFDDjADFRVYNc+JmYvmSl1BNTp6wzDili\nyCdykqoOOf8je14M1b5Eh3wAZ8uHcEghUwRWGO2MQwqZIrDCaGenf0I1yPQpAhtwSGtHXCFp\nSv8lReUUncIhxYxpXyBJGoekN4VDmjCFQ4oZ075AkrTldxHlJGxM8/jZYziknDHN42eP4ZBy\nxjSPnz3m5K/f9UqItqU9pnn87DGah8S9Gk4PK3PpZYiGYI7C8LA5HNLgOa3DZ8/hkJLmtA6f\nPYdDSprTOnz2nFO/etv7EDeo8ZLiImoO4pCi5jSOjnPGIQkO4pDSB3FIUXMaR8c5W3cb+94G\nza4M5jROHj6IQwob1DY4b9Cy49BMwCCNwXmDOKTJg9oG5w3ikCYPahucN2jVcWgGYJLI2OGT\nOKS4SU1jh0/ikOImNY0dPolDipvUNHb4JA4pblLT2OGTjv/SjW9C5KiWS4qMJzmKQ8qb1DI0\n0hmHJDiKQ4oexSHlTWoZGumMQxIcxSFFj+KQEkc1jJw+ikNKHNUwcvooDilxVMPI6aM4pMRR\nDSOnj+KQEkc1jJw+6vCv3PkaSDblNWv7wOnOOKTMWdsHTnfGIWXO2j5wujMOKXPW9oHTnXFI\nmbO2D5zu7OgvlFyeWToDp8/ikDJnbR84fRaHlDlr+8DpszikzFnbB06fxSFlzto+cPosDil1\nWHA2xVkcUuqw4GyKszik1GHB2RRncUipw4KzKc7ikFKHBWdTnHXw18U6kZRiOC7WWfGFKK7u\nN4xDyh3GIYXO2jwu1hmHJDiMQ8odxiGFzto8LtYZh8Qwhm0cxiExjGEFwzgkhjGsYBiHxDCG\nFQzjkBjGsIJhHBLDGFYwjENiGMMKhnFIDGNYwTAOiWEMKxjGITGMYQXDOCSGMaxgGIfEMIYV\nDOOQGMawgmEcEsMYVjCMQ2IYwwqGcUgMY1jBsGO/7PHYuDvDGOY37NCvejw27s4whhkOO/KL\nHo+NuzOMYY7DOCSGMaxgGIfEMIYVDOPvkRjGsIJh/FM7hjGsYNjWfyQPkAqHBFAAhwRQAIcE\nUACHBFAAhwRQAIcEUACHBFAAhwRQAIcEUACHBFAAhwRQAIcEUACHBFAAhwRQAIcEUACHBFAA\nhwRQAIcEUACHBFAAhwRQAIcEUACHBFAAhwRQAIcEUACHBFAAhwRQAIcEUACHBFAAhwRQAIcE\nUACHBFAAhwRQAIcEUACHBFDA/wCxIbTtmt8xVgAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now we can plot that\n",
    "mygraph<- graph_from_data_frame( edge_list )\n",
    "ggraph(mygraph, layout = 'dendrogram', circular = FALSE) + \n",
    "    geom_edge_diagonal() +\n",
    "    geom_node_point() +\n",
    "    theme_void()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.2 使用R和ggraph自定义树形图 Dendrogram customization with R and ggraph\n",
    "本节旨在显示了如何自定义树形图：布局，边线样式，节点特征等"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2.1 数据准备 Data preparation\n",
    "这里准备的是本节所用到的通用数据\n",
    "\n",
    "**首先使用igraph包创建一个数据集和一个图形对象**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning message:\n",
      "\"New theme missing the following elements: axis.title.x, axis.title.x.top, axis.title.y, axis.title.y.right, axis.text.x, axis.text.x.top, axis.text.y, axis.text.y.right, axis.ticks, axis.line, axis.line.x, axis.line.y, legend.background, legend.margin, legend.spacing, legend.spacing.x, legend.spacing.y, legend.key, legend.key.height, legend.key.width, legend.text.align, legend.title.align, legend.direction, legend.justification, legend.box.margin, legend.box.background, legend.box.spacing, panel.background, panel.border, panel.spacing.x, panel.spacing.y, panel.grid, panel.grid.minor, plot.background, strip.background, strip.placement, strip.text.x, strip.text.y\"\n"
     ]
    }
   ],
   "source": [
    "# Libraries\n",
    "library(ggraph)\n",
    "library(igraph)\n",
    "library(tidyverse)\n",
    "theme_set(theme_void())\n",
    " \n",
    "# data: edge list\n",
    "# 边数据\n",
    "d1 <- data.frame(from=\"origin\", to=paste(\"group\", seq(1,7), sep=\"\"))\n",
    "d2 <- data.frame(from=rep(d1$to, each=7), to=paste(\"subgroup\", seq(1,49), sep=\"_\"))\n",
    "edges <- rbind(d1, d2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**为每个节点添加聚类信息和值信息**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 10 × 4</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>name</th><th scope=col>group</th><th scope=col>cluster</th><th scope=col>value</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;int&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>origin    </td><td>NA    </td><td>b</td><td>11</td></tr>\n",
       "\t<tr><td>group1    </td><td>NA    </td><td>c</td><td>25</td></tr>\n",
       "\t<tr><td>group2    </td><td>NA    </td><td>c</td><td>10</td></tr>\n",
       "\t<tr><td>group3    </td><td>NA    </td><td>d</td><td>28</td></tr>\n",
       "\t<tr><td>group4    </td><td>NA    </td><td>b</td><td>25</td></tr>\n",
       "\t<tr><td>group5    </td><td>NA    </td><td>d</td><td>25</td></tr>\n",
       "\t<tr><td>group6    </td><td>NA    </td><td>c</td><td>26</td></tr>\n",
       "\t<tr><td>group7    </td><td>NA    </td><td>b</td><td>30</td></tr>\n",
       "\t<tr><td>subgroup_1</td><td>group1</td><td>a</td><td>10</td></tr>\n",
       "\t<tr><td>subgroup_2</td><td>group1</td><td>d</td><td>11</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 10 × 4\n",
       "\\begin{tabular}{r|llll}\n",
       " name & group & cluster & value\\\\\n",
       " <fct> & <fct> & <fct> & <int>\\\\\n",
       "\\hline\n",
       "\t origin     & NA     & b & 11\\\\\n",
       "\t group1     & NA     & c & 25\\\\\n",
       "\t group2     & NA     & c & 10\\\\\n",
       "\t group3     & NA     & d & 28\\\\\n",
       "\t group4     & NA     & b & 25\\\\\n",
       "\t group5     & NA     & d & 25\\\\\n",
       "\t group6     & NA     & c & 26\\\\\n",
       "\t group7     & NA     & b & 30\\\\\n",
       "\t subgroup\\_1 & group1 & a & 10\\\\\n",
       "\t subgroup\\_2 & group1 & d & 11\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 10 × 4\n",
       "\n",
       "| name &lt;fct&gt; | group &lt;fct&gt; | cluster &lt;fct&gt; | value &lt;int&gt; |\n",
       "|---|---|---|---|\n",
       "| origin     | NA     | b | 11 |\n",
       "| group1     | NA     | c | 25 |\n",
       "| group2     | NA     | c | 10 |\n",
       "| group3     | NA     | d | 28 |\n",
       "| group4     | NA     | b | 25 |\n",
       "| group5     | NA     | d | 25 |\n",
       "| group6     | NA     | c | 26 |\n",
       "| group7     | NA     | b | 30 |\n",
       "| subgroup_1 | group1 | a | 10 |\n",
       "| subgroup_2 | group1 | d | 11 |\n",
       "\n"
      ],
      "text/plain": [
       "   name       group  cluster value\n",
       "1  origin     NA     b       11   \n",
       "2  group1     NA     c       25   \n",
       "3  group2     NA     c       10   \n",
       "4  group3     NA     d       28   \n",
       "5  group4     NA     b       25   \n",
       "6  group5     NA     d       25   \n",
       "7  group6     NA     c       26   \n",
       "8  group7     NA     b       30   \n",
       "9  subgroup_1 group1 a       10   \n",
       "10 subgroup_2 group1 d       11   "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# We can add a second data frame with information for each node!\n",
    "# 为每个节点设置信息\n",
    "name <- unique(c(as.character(edges$from), as.character(edges$to)))\n",
    "# 设置每个节点对应的聚类信息和值\n",
    "vertices <- data.frame(\n",
    "  name=name,\n",
    "  group=c( rep(NA,8) ,  rep( paste(\"group\", seq(1,7), sep=\"\"), each=7)),\n",
    "  cluster=sample(letters[1:4], length(name), replace=T),\n",
    "  value=sample(seq(10,30), length(name), replace=T)\n",
    ")\n",
    "vertices[0:10,]\n",
    "# Create a graph object\n",
    "mygraph <- graph_from_data_frame( edges, vertices=vertices)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2.2 环形或线形布局 Circular or linear layout\n",
    "首先，由于ggraph的layout参数，您可以使用circular选项来使用环形或线形布局。\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n1+K3FVvuYe0VqWPX4V9a4vXE25OvV6KGTYe3rH4IzxuYqyyQ/FnJ3+kTC6arW8fxX1YPLNig\nxXY/Sr36TbC3QcUGLWZUbHaapxuYUUKzLU4qvOJTm0xUo2YzvqJalGzRZJOSaerTa0anPZb/\n4MmffZ4panJNTS700TVT1KXRLkt6cs0+jSaoR58pP/HPvqU+jTY50dMNjCinyT6n9OyiT77R\nWDVaT5+ij281WPo9Jv20N6raqNVWVUMl32JSg50WjgUN/oOSeoOtjqjVbVI2VNr9ZX0RUTax\nbq+yUZJur9kFdTuhZnW1//ZOublmi25Xt13DTzzWALVbBw1nF37gtW4r7Ye83fVQ+I/Cuvd6\nuoEPyuur4fVkFablOIn21XERXGXzyluSbCvxB5zKRaU7Vt6RYlctD6fn5bQsLfkflAR7arnc\npqWbtv2sq11UU/9pu7D0s852TU3tb9o2taOk1lBX87vW7vrl8qjDXVBb77vWpvEgabXT13nu\n0av4tKS66et73+KNW3/O7U6qseu0fqL6Y453Tp09b9w71UOk00pny6l+qPxTzndCrQ2n+UPV\nn3K/4+rtN7foWn5YIn30dpvyB+s/44IH1dxr2j9Y/hknPKbmVjdvn/oRUmiiu9Hd67cf4AlH\nLNACd2gPeMAVC3TQfov5O8Ki/h3097g/wGAE/zs+zecKFQgGI2jzDQw2GAFCd7yDvQ4Eh68b\n+1M+C3c4c2ySQWjCPbzlBp+EUGR7OAviUQhFtoezHgiTMbyv+RyZC3waw/qcj4FLZjOZA0ZT\nsIupMLQgBKklgiN/JEOIa2Mpg6hBjC/6DLVmMptJgDSk+vgJRI9CkNoxuPHnQhSgRm4yiiLF\n9qgPIIvmMpoFSjOkk5VQNDEEqRWEE3845SjRykiGUcWY3nU1r2oqq2nANOJ5uQhGl0OQ2lC4\ncDCncGYeMo4yx/K0a2FmHLNx7Di+MDOO2Th2nHKYm4FuHLuBHI+7kgVHHOTGKWZxD+IcBmqB\n8nOPuxPnEKQWILuBAHUgAdIH8R3UgARIH2Q4kh3IbiBGagFyO3A/4xxHciQRJHGQJYk9iWPs\nbDMlWQ7ldOJurrmSLIcyOnEuoQmJoYBUkxiqDcrmxi2343YIoGC4oyyHckMVMMwcq2d5GmiG\nIkigzqDMxspHePl1gsVYDVAESZ9lOpaXhQ6EEyjGasUyOHPTzXhdASwAZ1C2LNfB2t+56V5s\n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\nF7euAAAAAElFTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 线形布局\n",
    "ggraph(mygraph, layout = 'dendrogram', circular = FALSE) + \n",
    "  geom_edge_diagonal() \n",
    "# 环形布局\n",
    "ggraph(mygraph, layout = 'dendrogram', circular = TRUE) + \n",
    "  geom_edge_diagonal()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2.3 边的样式 Edge style\n",
    "然后你可以选择不同的边样式。ggraph软件包有两个主要功能：geom_edge_link和geom_edge_diagram。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n06ituGlz1c6RUKNhXmoLVjtH7kKNytdoFrm66fVN7iCzz758tZlEriSCBwleif6JSXCzXCn2\npFw1mUNwsYJXUjypSQG7zCG4V8WTeueUqh5jKK5V8STJS1FBGUkulUslHJWnDkNI7lTyUv2P\nSlODGTQ3qnmU5icFLVSQ6EI1jzrgWkkqP4HqOvs31rQ69DBZqtsULf8RZ6Wo+gCqy1Q9S/XD\ngiLmSnaXqmedcbEE1b6+7ibP6KvuYeEqfXvdPXJY8mHhKn173T3qHiZ8NbqYJOEtnnI15UFj\nVfjuyjsUvts5p4Wq7tWVV3jOadqXC1TZm0svkMuJHBenqhfX3t9JXdU+LkxF7y2+PUDSOS9I\nNa8tvryjjlO/XpBqXlt8d1xP6bwYlby1+uoOa6r6eSGqeGn5xR0Gkv4FA1Twzsf14LiBaWWE\n9Ld2Xk/1D3RXuRvr7+zAAytc0VnVLlxgY1xR80RfFbtvgYUVuOKhJ7qq1nUrrKvCiSUueXo1\nHVViWVxS+Eg/VbpsiV2VuGSNIyt1s9RlS6yqxpHHZummQnetsakaRxa55tntdFKRPXFN9TN9\nVOamRdZU5JpHn+miKhetsqQqZ1b5EDm6oA4qs6MqZ559UQfVuGadDR3dT58yHVxRa9VZUJnO\nn36ouUrcss5+6hxa53Pk4I4aq9B66hx6/FWNVeCOlZZzfDsrnWoq/StWWg2nVjrVVPpXrLSa\nSqeWuuypNTVUqcVw2WIZ2En9grXWUuq2HGsp8fvV2grHOp57ZlONVGwnXNfx2DOraqNqK6GZ\nJc81kfLlyi0EkHwPPrGsBmLPzudyYUPpXq3eNuhl3YO3JXuzgrsAJPeDD+zrpgqugoMDTlbt\nq+zFCm6CKwccfF5h91RxEbSy+Mlb0rxWxTVwctDRp1V2QyWXwKWDTj6ts+squYOSl+ZoMwne\nqeYGah5d9NpntXZRRfPn2oFHn1XbNRWNv+i1q54tV1u9GxVNv+rZ5G0ktQtVDb/q2WUvflJx\nF1Q2ei4efPZJzZ1X2eTLXpzDjSR1m7q51z287ufLQd2dVOHY6x7O1W0kdJfKodPGhMMPau+M\nKmdeuOqcbiOdq1SOvPLplT9ijqnvhEonXvl0Lm8ilYvUzpsudj1+WCL3qJ02x7c9flgi96id\ndu3ji1//jAYPqnjWXD/z/CMqPKRX9aSL3598DCRwiep7LH9++QG8P4mH7pB9gfo1Kd9DDDrc\n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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n1+K3FVvuYe0VqWPX4V9a4vXE25OvV6KGTYe3rH4IzxuYqyyQ/FnJ3+kTC6arW8fxX1YPLNig\nxXY/Sr36TbC3QcUGLWZUbHaapxuYUUKzLU4qvOJTm0xUo2YzvqJalGzRZJOSaerTa0anPZb/\n4MmffZ4panJNTS700TVT1KXRLkt6cs0+jSaoR58pP/HPvqU+jTY50dMNjCinyT6n9OyiT77R\nWDVaT5+ij281WPo9Jv20N6raqNVWVUMl32JSg50WjgUN/oOSeoOtjqjVbVI2VNr9ZX0RUTax\nbq+yUZJur9kFdTuhZnW1//ZOublmi25Xt13DTzzWALVbBw1nF37gtW4r7Ye83fVQ+I/Cuvd6\nuoEPyuur4fVkFablOIn21XERXGXzyluSbCvxB5zKRaU7Vt6RYlctD6fn5bQsLfkflAR7arnc\npqWbtv2sq11UU/9pu7D0s852TU3tb9o2taOk1lBX87vW7vrl8qjDXVBb77vWpvEgabXT13nu\n0av4tKS66et73+KNW3/O7U6qseu0fqL6Y453Tp09b9w71UOk00pny6l+qPxTzndCrQ2n+UPV\nn3K/4+rtN7foWn5YIn30dpvyB+s/44IH1dxr2j9Y/hknPKbmVjdvn/oRUmiiu9Hd67cf4AlH\nLNACd2gPeMAVC3TQfov5O8Ki/h3097g/wGAE/zs+zecKFQgGI2jzDQw2GAFCd7yDvQ4Eh68b\n+1M+C3c4c2ySQWjCPbzlBp+EUGR7OAviUQhFtoezHgiTMbyv+RyZC3waw/qcj4FLZjOZA0ZT\nsIupMLQgBKklgiN/JEOIa2Mpg6hBjC/6DLVmMptJgDSk+vgJRI9CkNoxuPHnQhSgRm4yiiLF\n9qgPIIvmMpoFSjOkk5VQNDEEqRWEE3845SjRykiGUcWY3nU1r2oqq2nANOJ5uQhGl0OQ2lC4\ncDCncGYeMo4yx/K0a2FmHLNx7Di+MDOO2Th2nHKYm4FuHLuBHI+7kgVHHOTGKWZxD+IcBmqB\n8nOPuxPnEKQWILuBAHUgAdIH8R3UgARIH2Q4kh3IbiBGagFyO3A/4xxHciQRJHGQJYk9iWPs\nbDMlWQ7ldOJurrmSLIcyOnEuoQmJoYBUkxiqDcrmxi2343YIoGC4oyyHckMVMMwcq2d5GmiG\nIkigzqDMxspHePl1gsVYDVAESZ9lOpaXhQ6EEyjGasUyOHPTzXhdASwAZ1C2LNfB2t+56V5s\n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\nF7euAAAAAElFTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 折线\n",
    "ggraph(mygraph, layout = 'dendrogram') + \n",
    "  geom_edge_link()\n",
    "# 弧线\n",
    "ggraph(mygraph, layout = 'dendrogram') + \n",
    "  geom_edge_diagonal()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2.4 标签和节点 Labels and Nodes\n",
    "您可能需要添加标签，以便对树有更深入的了解。最后是节点。这可以分别使用geom_node_text和geom_node_point来完成。但是对于环形树添加标签比较麻烦，下一节单独进行讲述。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n6WGk1uVqDJqz5L/11kYaPWmeqxnZSP2tD2ykhvQwkkwPI23HgJGqD8RIGGk7BoxUfSBGwkjb\nMQw2kuX5/owUqZoYqX239oEVk+269VRzXw4j7cRA65WCUz8wejUxklU01udjJFfVnGykvmZq\nt141GuvztSft2Ok5GJZVMJL5+Rgp2bCsgpHMz8dIyYZllcZ9fb3VbgVG2tdTraY8vWzDsooH\nIyVvfXd6VHNfb3R6q2Ak+/MxkuHL1udjpPqXrc/HSIYvW5+Pkepftj6/mB7VbH/Z+nyMVP+y\n9fm9RupO71jVxEijznfXeozU/rL1+Rip/mXr8zGS4cvW52Ok+petJ7nXSJ3RUU1N+S2mGGly\n62/1fLeeau7KYaSdIGi9XnRUU1N+C4zUcAFG2tXzXU2MZCbvvfVUc1culJF0gxO33lbeOh3j\nSTtYetOHZR2MpH8eRhopj5H2gsBI7duTpzd9WNbBSPrnYaSR8hhpLwiM1L69qNd53uBqFofF\nOJ1IRqL1lvJUUzWcDTCSwvUYSfN6jNS8ndZbylNN1XA28Gkk5XXw1lPNHjmMpLee3PrRraaa\nluFsgJEUrnfWaqppGc4GGEnhemetppqW4WyAkRSud9ZqqmkZzgYYqWG/83QmhxM8fIzUHo7z\n8J2Hh5E6tuWqlfPwnYeHkTq25aqV8/Cdh4eROrblqlXw8J2FFzx8jFS/DtZ6Z+EEryZG0lsH\na72zcIJXEyPprYO13lk4wauJkfTWwVrvLJzg1cRIemtn4SQLN1j4GKl97SycZOEGCx8jta+d\nhZMs3GDhY6T2tbNwkoUbLHyM1L52Fk6ycIOFj5Ha187CSRZusPAxUvvaWTjJwg0WPkZqXzsL\nJ1m4wcLHSO1rZ+EkCzdY+BhJb+0snGDhJQsfI7WvnYUTLLxk4dsaCQD2wEgACmAkAAUwEoAC\nDUb67365f36/+OLqp2X58ffy4MuT//5YPq45Pd+/nvHwsX25+/X9+N/3y+PLcXfLw5/3a59e\n9i7Lw9P78vTn5+Pr+u7x+V9HeN9eJLye8Hbicx7eTXyl8HaQG+m/5e3sr3if75an03v+F9l8\n5PL665+3S5b71+I8v37g9/sH/ry9vtz/vj7+6fHz9X93ywdPX/Lv/Nce3kd8hNcTXik+5+Fd\nx1cKb4+ykZZLXtYPr4f+vnv4iPf59eOPy6/X3/243f76n/vl+W3jazT3rzvfPvC8vJ/x+265\n/3pjeHip4EtCb6+/vDu8vNu8/Pbp4d/f/x7fTnlcfry/Pfz5cb5eFN71fsLrCa8Un/PwrgJf\neRYAAApsSURBVOMrhbdrk8Lrb/fNm+Bebnp3D+ff3i+/X0x+fzq/9LCy/eLt9eI/X799lXh4\n/vPvtPL63ftvX/L69yZycdd++60wvOv4CK8nvFJ8zsO7jq8U3h5lI70ofbvLngP7e/d4Ifz4\n9PnS8/snnpd318eLXO6Xfx8fWO4+Pvjv5923Wl3leluGi0iE4V3FR3g94ZXicx7edXyl8Pao\nMNLpx9231fnzxT/Lwzm4c67/fr7dXk9/Xr5i+3eRy9Ov38vv08ft8uWe+uvv6eHptUhPFxH+\neX68f39T+bi9/nrb//B+p70/nd96Xu7u3+7+4vC+x0d4PeGV4nMe3nV8pfD2qDHS6e7yS62/\ny1n+1/tvfn1F/fEF38/l7vfXRz/t/v7yj89778UXjV9cf8F3/lrx9+vO59Pq16PS8C7jI7ye\n8ErxOQ/vOr5SeHtUGek7fz/eJf57eLv619msd0+f37L8c7d8xvjn9/OP17vp3cd3KP+8fU/x\n7vHXaSWXz29BvnwR+fnmtDy8VvX8Lcx/z49vt+L7je9JVoR3GR/h9YRXiM95eDfxlcLbocFI\nVfwoflI5F+fxEV4PM8ITK17HWFgLt4vXAC7ASMpc/+y9c6183JnrRwGM19LLzaemc2jXwEi6\nXP/svXOtfNztowDGa+nlZzDSACNdcv0B+Vr5uJufvXeulY+7eRTAeC29XLsbwnVp+x7hjXT9\nw2/huvPy4s/eO9fKx908CmC8ll5+/WTC4HVp+x7xjHT1w+7rH35L18rHneP9/rP39rXyce//\nuXgUwHgtvfz6yYTR69L2HeIZ6eqH3dc//BavdY+7/tl751r5uJtHAYzX0suvn0wYvi5t3yag\nkb7/sPvUvVY97vpn751r5eNuHgUwXksvf+XyyYQJ69L2LSIayTXXP3vvXCsfd/MogPFaevkr\nl08mTFiXtm+AkcAd108mDF6Xtq8SfS6VjWnt+9zhJQtf9CZeZ6R/T/fL8vCzdi3cLl5fxn+o\nVjsLJ3n4+kb6e/6z6x9fEBbWwu3itSTZXK12Fk7y8PWN9LA8vMzw34fztyhLa+F28VqSbK5W\nOwsnefj6Rjqf8O/jpMJauF28XglNa+2slcHCSxa+vpEel/dvTp7/+G9pLdwuXn+L/1CtdhZO\n8vD1jXT68foX5v19ePhbtxZuF68FyeZqtbNwkoevb6TlG8W1cLt43VGb4K12Fk7y8DFS+9pZ\nK4OFlyx8fSM55litdhZO8vAPZSQAFwg/tataC7eL19pPSlg/iJE7vGThC56q+UZEIyk/KWH9\nIEbu8JKFL3mq5huCT+3+XvmysBZuF6yVn5SwfhAjd3jJwpc8VfMNyddI/5afkrVwe/36fGfS\nelJC+biDhZcs/NL2TUTfbHDyTRrlJyWsH8TIHV6y8CVP1XxDYqRfy51kLdwuWCs/KWH9IEbu\n8JKFL3iq5huybzY8Va2F29vXb3SvlY87WHjJwi9tVzHS59/yUVgLt7euW2sVrNXOwkkefml7\nn5EAYB+MBKBAnZHefrx7//VXJhXWwu3S9fWttnOtfNzBwksWfmn7JlVGcvbD7MG1m7x2Fk7y\n8EvbN6ky0o+rH+8W1sLt4vU7yk9O2D2IcYTwkoVf2r5C5XftRL8Kt4t/PaP85ITZgxiHCC9Z\n+KXttwQ2kvba+Pjk4SULv7T9hrif2mk/OWH3IMYRwksWfmn7LaG/2aDzpITycQcLL1n4pe2b\nVBnJ57e/tZ6UUD7uYOElC7+0fZM6IwHALlVGevghWgu3i9cA7qgy0t0iWgu3i9fanyoafyaa\nPLxk4Ze2b1FlpD8PT38Fa+F28fpYf6uAs3CSh2/7dzYsn1SthdvFa+Vvp1t/tz53eMnCr/zR\nyy0RjaT8q/XPj3OHlyz80rZNIn7X7litdhLGQcI/lJGO9cmHs3CShz/qU7u7H3/La+F28fpY\nXw47Cyd5+KO+2fDC3+JauF28Ptg3aJ2Fkzx8029///64v/06Pb3e4wpr4XbxGsAdVUa6//hb\n8u7fv+oqrIXbxWvlJyWsH8TIHV6y8Jufqqn81O7r14//7ayF28Vr5SclrB/EyB1esvCLT9Vs\nUbXv828Sfzj993pbKKyF28Vr5SclrB/EyB1esvBL2zepMtLFty6W5bm4Fm4Xr7++83DOoW+t\nfNzBwksWfmn7JnV3rn8/P7518f4HnApr4XbpenDtJq+dhZM8/NL2TWo/BQSAHTASgAKVn9q9\n/VTq57/KtXC7dP11u1V5UkL5uIOFlyz80vZNpN9sqFmP+5tWF40nJZSPO1h4ycIvbe8z0uf3\nnx+r1sLt4rXykxLWD2LkDi9Z+M1P1VQZ6fwtCy//bKjykxLWD2LkDi9Z+KXtm1QZ6fMf0nys\nWgu3i9eXBvv4X8da+biDhZcs/NL2TaqMdHp8v789Vq6F26Vr5SclrB/EyB1esvBL2zuM9O3L\nrfJauF28Pqk/KWH9IEbu8JKFX9qeykjaT0oYP4iRPLxk4Ze2b9pk70UAqAMjAShQZaTrz60K\na+F28Vr7SQnjBzGSh5cs/NL2LSIa6Vh/PYezcJKHb/uXn5zP9PLPhio/KWH9IEbu8JKFX9q+\nieRrJC//bOj5zqT1pITycQcLL1n4pe2biL7ZcH1aYS3cXr1WflLC+kGM3OElC7+0fROJkdz8\ns6HKT0oYP4iRPLxk4Ze2byH7ZoODfzZ0uaR/rXzcwcJLFn5p+65Hyjb6PNDFPxs6uHaT187C\nSR5+afuuRwqvA0AFGAlAgTojPb98mf/fcvezci3cLl1f324718rHHSy8ZOGXtm9SZaTnl2Pe\nfsT7s2ot3C5eD67d5LWzcJKHX9q+SZWR7pf/Xv73/Ofj+8+FtXC7eP2O8pMTdg9iHCG8ZOGX\ntq9Q+V270+/LP7ReWAu3i9dnlJ+cMHsQ4xDhJQu/tP2WKiPdLX9/LH9ev0ypWgu3i9efsS+q\na+XjDhZesvBL22+oMtLPl08R714Pe6paC7eL12eUn5ywexDjCOElC7+0/ZYqI52elrvfL3eG\np8q1cLt0/fn1n86TE8rHHSy8ZOGXtm9SZyRfnFPTenJC+biDhZcs/NL2TSIaCcAdGAlAgZBG\nUn5SwvhBjOThJQu/tH2LiEZSflLC+kGM3OElC7+0fZOIRlJ+UsL6QYzc4SULv+6pmhUiGkn5\nSQnrBzFyh5cs/NL2TSIaSflJCesHMXKHlyz82qdqbohoJOUnJawfxMgdXrLwK5+quSWikbSf\nlDB+ECN5eMnCL23fIqSRALyBkQAUwEgACmAkAAUwEoACGAlAAYwEoABGAlAAIwEogJEAFMBI\nAApgJAAFMBKAAhgJQAGMBKAARgJQACMBKICRABTASAAKYCQABTASgAIYCUABjASgAEYCUAAj\nASiAkQAUwEgACmAkAAUwEoACGAlAAYwEoABGAlAAIwEogJEAFMBIAApgJAAFMBKAAhgJQAGM\nBKAARgJQACMBKICRABTASAAKYCQABTASgAIYCUABjASgAEYCUAAjASiAkQAUwEgACmAkAAUw\nEoACGAlAAYwEoABGAlAAIwEogJEAFMBIAAr8D4yPWf/bX/XwAAAAAElFTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nozZu5JKnN1Yu1MjnqI0bueTpjZULNfI5auNGLnl6Y+VCjXyO2riRS57eWLlQI5+jNm7kkqc3\nVi7UyOeojRu55OmNlQs18rReVS55eoPlMNKOXm655OkNlsNIO3q55ZKnN1gOI+3o5ZZLnt5g\nOYy0o5dbLnl6g+Uw0o5ebrnk6Q2Ww0g7ernlkqc3WA4j7ejllkue3mA5jORFLknrt/Vyy2Ek\nL3JJWr+tN1guxbBgpBa9wXKk518OI7XoDZYjPf9yGKlFb7Bc8mqmSA8j+dfLLZckPYzkXy+3\nXJL0MJJ/vdxySdLDSC1yydMbKpckPYzUIkd6qnoZ5DBSixzpqeplkMNILXKkp6qXQQ4jtciR\nXlg5jLQrR+s15ahmw7E2p9J6Vb3BclSz4VibU2m9qt5gOarZcKzJobQ+rlzy9KzkrIyUojhu\n5JKnN1jOZuZNDk3fi8FyydMbLIeRdvRyyyVPb7AcRvIhl6X1O3q55TCSD7ksrd/RGyyXYVgw\nUpPeYDnScy+HkZr0BsuRnns5jORdjvRCyGGkJjnSU9VLIIeRmuRIT1UvgRxGapIjPVW9BHIW\nh85oxUC9A0xa8mqaDL3FmUlq40MOI4XQw0je5TBSCD2MhNxUvRlyoYyUvBeD5ZKnN1gOI+3o\n5ZZLnt5gOYy0o5dbLnl6g+Uwkge5NK13IZemmhjJu15uuTTpYSTvernl0qSHkbzr5ZZLk57B\nmcuU2gzTm5PeYLnk1bSYeoMjs9TGhRxGiqGHkZzLYaQYevGNtAweNSYttpzRs4tGRjqNK84B\njDSwmnOMZPRX0K/KYaQtOYykrYeRGk42OBIjKcthJEU5jLQpdxrZiw+1ga2nmnp6GGlHLnvr\nqaaeHkbakcveeqqppxfISMs52mG9OKsNkzuNnGyqqSr3oWYx9von0npFOaqpKYeRdvTSt55q\nqsmFMtJHJ8YUZznNaf2o9M5ag9LLXk279DCSVA8jaeqlGRaMJNXDSJp6aYZF/cTlNH7SBrb+\n31wP0VtOg400vJpZhsXMSMNbP2yyl9O49JbT4PQuBEfI5RkWjCSUw0iacnmGBSMJ5TCSplye\nYTE00pBeLKfBrV/+SY6QG2uk5bKeY/SyVBMjCfUwkq5elmpiJKEeRtLVy1JN7QOX05RJG6U3\nRS55ejmGBSP5l0ueXo5hwUj+5ZKnl2NYrIw0qDhf5mxw6welN7Sas4w0bFjM3pYwklgPI+np\nYaTt8zCSvhxG0pOLYaTlNLr1yxfNAXIDW38llju94MOCkaRyGElPLtGwYCSpHEbSk0s0LOrH\nLaeBrV9uFK31Bqd3oWSfXvpqWqaHkWR6GElTL9Gw6B633IRry3KjaCx3rWgvN9RI46s5bliW\nW0Xl43VP+9J6++LcKNrKfc1tcOvHVTPj+4RxNTGSSA4jacphpJ3TRhppuf7/wXLj9KZU01wv\nUzUxUodc7NbvyGGkluN1T8NIFnoYSUEujpG+lMS+OF9UBvRi8KStlDJlel/ytJczSg8jifQw\nkqEcRro4DCPpyyVPDyOtHTbYSDdahno3TRifnr3csMm+aVvwamIkiRxG0pSbPSxujfR1vsxr\ns6plq7fWfUO5kUaaWs056YUykmFxVrUGt35kelSzT842PYwk0cNImnqphkXxrOV0UxTT4iyb\nklZyK6lZy02qpvlkr6c3Qs5oWDCSQA4jacphpJ2jMJKyHEbSlgtjpOu2WxVnTcdQb7DcaCMd\np5pG7xMYyaccRrLWc2ukCa1I3HqqaSUXzkjGxfHSesP0VitJNTvljNLDSAK9XK2/lqOavRJ6\nBw020rqUid62lJncUdLLMSwYSSaHkbTkkg2L6kE77ddm8KQtX/4xZtLWU7RNb+M3FnqDh2Wn\ng2oaagetdNyqOINbv5KQ+WT7qObA9MbIGQ0LRpLJYSQtPYy0fc5WG/SLsyZg2Yu9zCzlxlRz\nN7PB1RwzLPpyGEmmh5GU5DDS9jH7/1BlsJF2Mxssl7yaGGl2bSz15solTy/HsGAk/3LJ08sx\nLIZGMixOYchM5Eo5auu5qeaQ9MZVEyOtymEkTTmM1Keic8pNLcxaX1IaN2lD0ptcTRO9edUM\nbSTl4hSVRrR+XHpUs1vOPj2MVKuHkTT10g2LyinL9T83/kCLPQ2DXuxq6KdXkZi+3m5ig9ML\nOSwYqVIOI2nK5RsWbSNNmTRbI23NcRIjVSSWqpqxjTS6F5p6g+Ucvk8krKb6+4TGIRNbkbD1\nU+SSp7c1MkGMZFQcj0YySm9YNb0YyXRYCqlqCGmcgZFs5TCSjpxfI2332WbU6oRM5AZMNtXU\nlysK6blA4QharyhHNTXlQhmp2ASt4lQKmcgNaz3V1NTbVg1lJMteFFV15YZNdq2qkhzVVFJS\nOGGUkVb7a976alUdOaqpKZfMSErF2TvabtSqVXXkqKZ5etpyGKlKDyOpyHmoplcj7ZZBvzi7\nJxv0ol7HXC55euvJ6ssZpYeRqvQ8yCVP7+BG2m+ymZGG1EamY/42kTw9jHT5qycjaehJdPTk\n6nRypxdtWJSu3++1dSvMjHR90qBJq8pSP726pZrcqGERNbFXrPf6Qq+telEnqyY3arKppoZc\nZfmUqomRBHIYSVMOI61cXtkDrWgLv2q3vlLWKr3J1VQzrjAt4/SU5TBShR5G0pDDSOWrJ0+a\nlZEGp+e0mlpGmlzNFEYKOmrO5JKnN9hIynpdV1fHqBysuEZ9cl4mzSi90ZM2uZohjWTc+nr9\nLrnZ7xNejMSwVMj1XZy8NhhJQe8ow9Jz8fZAqY5aWcZWTpJvh57fag5Kz1bO6G0QI9XLYSSM\nVNTrunZM63f6OsZIknwV5PxVU1VvVjWTGKlDsOZQ015IAlCQo5q26dnccHsubfuNqd5gOQU9\nqmlSzbxGCjNqDuWSpzfYSLpOwkiB5JKnh5G2f6MYbKtKo56sFabpjamm6dugsFWzhgUj1bzW\nKIeRMJJEsf3K3WlSC7ZZpVevdQYM5JJXc356oYzUKNmsMrj1velVnt2Z3lGqOSi9nisruztk\n0gxq0z7PTXris7XSO141oxtJrTjtVWqS6xDuk6OamnLyEJo1my+k9Rvb+uSopqacWyPVNlcr\n2MF6rtKjms71dK5LWRtX6VFN53o6101rhaFel4j/SRtcTQ/pNSTaKtp6XVfYPXK+jKSentdq\nGqY3pJoYSXg0RhLJYaRWua7r6nur0ov683R60SfSITekmp0ig6s5ZFi63ieULsNIinIYae8P\npXL+jbSuO6I2vcpCuSZlFTlnkxYyvaaW+TeSSi96lYVy3crNcpKccqfnfFi0rhpRG8EkadRG\nMrgeJi1Met3KMrkDGGlI65t70S2nrOetms16LqqJkTp+G2XSYlQTI+3LNl1UjqU/WtFpCsVR\n0GhMj2quaqhWU9u4ShfR+lUNjKSpkdVIssaqtn5EbTQ0BHo+qmlmJA0Nx8PSdZGP1jdH0SbX\nHIVArl0jd3qOh0XtmoS1CThpydNzPCxa1wh73FQcmYaVnNlkR6zmiPSs5HTfJ7SuCdN6jNSk\ngZEahFsuGdD6ml4OMFJH1i1yI4ykI10t56Sa2YxUrSw9y6gXHdItclbVVEppcDWthqX/hqt1\nCUbCSLVyGGn7Cq3fO9JzmB7V9Jqe2hUJa+MwParpNT21KxLWxmF6VNNrempXVMXRF2zXsYNb\nr5ge1bSqJkY6bOupZkYjybtq03qj2vRlIdajmsOrmc9I8uL0SXTJGU021RxeTXkNqsBIdXIY\nae8FqRxG6u6wtDidHZYWpyHwrl5QzeHVVHyf2JSQXkDrq7Ur9KhmtXaFHkbaljtq66lmnVwo\nI3XGJy1Oy0E9vVDNSCs9qlmnp5pRlzGk+2l9/UImRzUb9DBSr1zy1lPNOr1IRuquwODWC/UC\nyCVPL9Cw7IgLt+erTQC55OkFGpYdceH2ma1I0frBRqKaqno76sLttF4SlpIc1eyUw0iHbT3V\nrNKLZKS2lta+VNBTUGiWM5lsqil6SamabWUogpEMFTCSpgJGovUVclSz9FJaIzX2V1Acjf7q\nyJlMdvRq2qdnIaf1PrEnL9sdsPUYyU58X89PNTESRpJt3JXDSMKXSoh2a4QnKY7Gma1yBuL1\nclSzfFm9nM37xK6+aDOtF15WL0c1y5fVy2EkWt8jvqt33Goe0EitpzT2wkBOR89tNev1HFUT\nI2ms3E5ayGpiJJXNEVvvdtJCVhMjtW1Wyr862sGtDyKXPD0DORPj7gcg2YuR5sglTw8jVccT\nsReO5JKnh5F2Tm0LdnBtlARU0otSTYP0zKuJkVRiwUh9R2KkqgAke2O2HiP1HYmRqgKQbNWq\nxmYENgJNcgaTTTUbXtSops77RCkCwVZaX/MiRtIUwEjVL5oLBGw91RTKhTKSWvG3IjAS8Nl6\nqln1IkaqftFcwOdkd5xYl96hqmmfXjGC+q3paoOR+l80F/CSXjGC+q3paoOR+l80F/CSXjGC\n+p2DW2+lrn9iNiM1pZd8WIoRCHZmqw1G0tirf6LLYSlGINiZrTYYSWOv/okuh6UYgWCnXnTr\nIfQcod56vWBarqGaJT2zfDCSVM5z66lmSQ8jbYdA62fJJa+mbyO5qk1L6xUTwEiuq4mRTPU8\nt55qFuSG33DLIdTvxEg9chhJUw4j7YRA62fJJa/mbCMZFsNDLwLJJU+vX87euBUx1G7ESNPk\nkqeHkVqXHnvhWS55ehipdbkag+Ys+W+9tZFGT5rnakY2Un/rAxupIT2MJNPDSNsxYKTqAzES\nRtqOASNVH4iRMNJ2DJbFWNGzPN+fkQ5dTYxkFY31+RjJVTUxklU01udjJFfVnGykvmZqt141\nGuvztScNIxX0MNKg83MbKXl6DoZlFYxkfj5GSjYsq2Ak8/MxUrJhWaVxX19vtVuBkfb1VKsp\nTy/bsKziwUjJW9+dHtXc1xud3ioYyf58jGT4svX5GKn+ZevzMZLhy9bnY6T6l63PL6ZXuqA3\nvWNVEyONOt9d6zFS+8vW52Ok+petz8dIhi9bn4+R6l+2nuReI3VGRzU15beYYqTJrb/V8916\nqrkrh5F2gqD1etFRTU35LTBSwwUYaVfPdzXnGkk3OHHrbeWt0zGeNIw0Un4LjKR/3mQjJU9v\n+rCsg5H0z8NII+Ux0l4QGKl9e/L0pg/LOhhJ/zzvRuo8b3A1i8NinE4kI9F6S3mqqRrOBhhJ\n4XqMpHk9RmreTust5ammajgbYCSF6zGS5vUYqXm79Xpy60e3mmpahrMBRlK43lmrqaZlOBtg\nJIXrnbWaalqGswFGUrjeWauppmU4G2Ckhv3OwncWTrJ0MFL9dufhOw8PI3Vsy1Ur5+E7Dw8j\ndWzLVSvn4TsPDyN1bMtVq+DhOwsvePgYqX4drPXOwgleTYyktw7WemfhBK8mRtJbB2u9s3CC\nVxMj6a2Dtd5ZOMGriZH01s7CSRZusPAxUvvaWTjJwg0WPkZqXzsLJ1m4wcLHSO1rZ+EkCzdY\n+Bipfe0snGThBgsfI7WvnYWTLNxg4WOk9rWzcJKFGyx8jNS+dhZOsnCDhT/USP8t/0nWwu3D\n18t/kcJ1Fk628IXDsEWVkf773/K//+rXwu2z187CCRZesvBL2zepMdJ//3s57eK4wlq4ffba\nWTjBwksWfmn7NpVG+t/V6Xtr4fbZa2fhBAsvWfil7dtgJGfhBAsvWfi2Rno77r/6tXD77LWz\ncIKFlyz80vZNKj+1+/rJRmkt3D577SycYOElC7+0fYvKT8kBYA+MBKAARgJQACMBKICRABTA\nSAAKYCQABTASgAIYCUCBBiP9ul/un98vvrj6aVm+/bk8+PLkP9+Wj2tOz/evZzx8bF/ufnw9\n/uf98vhy3N3y8Pv92qeXvcvy8PS+PP3+/vi6vnt8/tsR3pcXCa8nvJ34nId3E18pvB3kRvq1\nvJ39L97nu+Xp9J7/RTYfubz++vvtkuX+tTjPr3/w8/0Pfr+9vtz/vD7+6fHz9b93ywdP/+Tf\n+dUe3kd8hNcTXik+5+Fdx1cKb4+ykZZLXtYPr4f+vHv4iPf59c8flx+vv/t2u/31H/fL89vG\n12juX3e+/cHz8n7Gz7vl/t8bw8NLBV8Senv95d3h5d3m5bdPD3///Hp8O+Vx+fb+9vD72/l6\nUXjX+wmvJ7xSfM7Du46vFN6uTQqvv903b4J7uendPZx/e7/8fDH5/en80sPK9ou314t//Pvt\nq8TD895/l+UAAAp8SURBVO+/p5XX795/+5LX3zeRi7v222+F4V3HR3g94ZXicx7edXyl8PYo\nG+lF6ctd9hzYn7vHC+HHp8+Xnt+/8Ly8uz5e5HK//P34g+Xu4w//fr/7UqurXG/LcBGJMLyr\n+AivJ7xSfM7Du46vFN4eFUY6fbv7sjp/vfh7eTgHd8717/e32+vp98t3bH8vcnn68XP5efq4\nXb7cU3/8OT08vRbp6SLC38+P9+9vKh+31x9v+x/e77T3p/Nbz8vd/cvdXxze1/gIrye8UnzO\nw7uOrxTeHjVGOt1dfqv1ZznL/3j/zY9/UX98w/d9ufv5708/7f7+8rfPe+/FN43/uP6G7/y9\n4s/Xnc+n1e9HpeFdxkd4PeGV4nMe3nV8pfD2qDLSV/58vEv8eni7+sfZrHdPnx9Z/r5bPmP8\n/fP52+vd9O7jE8rfb58p3j3+OK3k8vkR5Ms3kZ9vTsvDa1XPH2H+fX58uxXfb3wmWRHeZXyE\n1xNeIT7n4d3EVwpvhwYjVfGt+EXlXJzHR3g9zAhPrHgdY2Et3C5eA7gAIylz/bP3zrXycWeu\nHwUwXksvN5+azqFdAyPpcv2z98618nG3jwIYr6WXn8FIA4x0yfUfyNfKx9387L1zrXzczaMA\nxmvp5drdEK5L2/cIb6TrH34L152XF3/23rlWPu7mUQDjtfTy6ycTBq9L2/eIZ6SrH3Zf//Bb\nulY+7hzv15+9t6+Vj3v/x8WjAMZr6eXXTyaMXpe27xDPSFc/7L7+4bd4rXvc9c/eO9fKx908\nCmC8ll5+/WTC8HVp+zYBjfT1h92n7rXqcdc/e+9cKx938yiA8Vp6+SuXTyZMWJe2bxHRSK65\n/tl751r5uJtHAYzX0stfuXwyYcK6tH0DjATuuH4yYfC6tH2V6HOpbExr3+cOL1n4ojfxOiP9\nfbpflofvtWvhdvH6Mv5DtdpZOMnD1zfSn/O/u/7xDWFhLdwuXkuSzdVqZ+EkD1/fSA/Lw8sM\n/3k4f0RZWgu3i9eSZHO12lk4ycPXN9L5hL8fJxXWwu3i9UpoWmtnrQwWXrLw9Y30uLx/OHn+\n139La+F28fpL/IdqtbNwkoevb6TTt9e/MO/Pw8OfurVwu3gtSDZXq52Fkzx8fSMtXyiuhdvF\n647aBG+1s3CSh4+R2tfOWhksvGTh6xvJMcdqtbNwkod/KCMBuED4pV3VWrhdvNZ+UsL6QYzc\n4SULX/BUzRciGkn5SQnrBzFyh5csfMlTNV8QfGn358qXhbVwu2Ct/KSE9YMYucNLFr7kqZov\nSL5H+rt8l6yF2+vX5zuT1pMSyscdLLxk4Ze2byL6sMHJhzTKT0pYP4iRO7xk4UueqvmCxEg/\nljvJWrhdsFZ+UsL6QYzc4SULX/BUzRdkHzY8Va2F29vXb3SvlY87WHjJwi9tVzHS59/yUVgL\nt7euW2sVrNXOwkkefml7n5EAYB+MBKBAnZHefrx7/++vTCqshdul6+tbbeda+biDhZcs/NL2\nTaqM5OyH2YNrN3ntLJzk4Ze2b1JlpG9XP94trIXbxet3lJ+csHsQ4wjhJQu/tH2Fyk/tRL8K\nt4t/PaP85ITZgxiHCC9Z+KXttwQ2kvba+Pjk4SULv7T9hrhf2mk/OWH3IMYRwksWfmn7LaE/\nbNB5UkL5uIOFlyz80vZNqozk8+NvrScllI87WHjJwi9t36TOSACwS5WRHr6J1sLt4jWAO6qM\ndLeI1sLt4rX2l4rGX4kmDy9Z+KXtW1QZ6ffD0x/BWrhdvD7W3yrgLJzk4dv+nQ3LJ1Vr4Xbx\nWvnjdOtP63OHlyz8yh+93BLRSMq/Wv/8OHd4ycIvbdsk4qd2x2q1kzAOEv6hjHSsLz6chZM8\n/FFf2t19+1NeC7eL18f6dthZOMnDH/Vhwwt/imvhdvH6YB/QOgsnefimH3///Li//Tg9vd7j\nCmvhdvEawB1VRrr/+Fvy7t+/6yqshdvFa+UnJawfxMgdXrLwm5+qqfzS7t+vH//bWQu3i9fK\nT0pYP4iRO7xk4Refqtmiat/n3yT+cPr1elsorIXbxWvlJyWsH8TIHV6y8EvbN6ky0sVHF8vy\nXFwLt4vX/z55OOfQt1Y+7mDhJQu/tH2TujvX3+8fH128/wtOhbVwu3Q9uHaT187CSR5+afsm\ntV8CAsAOGAlAgcov7d5+KvX9b+VauF26/ne7VXlSQvm4g4WXLPzS9k2kHzbUrMf9TauLxpMS\nyscdLLxk4Ze29xnp8/Pnx6q1cLt4rfykhPWDGLnDSxZ+81M1VUY6f2Th5T8bqvykhPWDGLnD\nSxZ+afsmVUb6/A9pPlathdvF60uDffyvY6183MHCSxZ+afsmVUY6Pb7f3x4r18Lt0rXykxLW\nD2LkDi9Z+KXtHUb68u1WeS3cLl6f1J+UsH4QI3d4ycIvbU9lJO0nJYwfxEgeXrLwS9s3bbL3\nIgDUgZEAFKgy0vXXVoW1cLt4rf2khPGDGMnDSxZ+afsWEY10rL+ew1k4ycO3/ctPzmd6+c+G\nKj8pYf0gRu7wkoVf2r6J5HskL//Z0POdSetJCeXjDhZesvBL2zcRfdhwfVphLdxevVZ+UsL6\nQYzc4SULv7R9E4mR3PxnQ5WflDB+ECN5eMnCL23fQvZhg4P/bOhySf9a+biDhZcs/NL2XY+U\nbfR5oIv/bOjg2k1eOwsnefil7bseKbwOABVgJAAF6oz0/PJt/q/l7nvlWrhdur6+3XaulY87\nWHjJwi9t36TKSM8vx7z9iPd71Vq4XbweXLvJa2fhJA+/tH2TKiPdL79e/vf8++Pz58JauF28\nfkf5yQm7BzGOEF6y8EvbV6j81O708/JfWi+shdvF6zPKT06YPYhxiPCShV/afkuVke6WP9+W\n36/fplSthdvF68/YF9W18nEHCy9Z+KXtN1QZ6fvLl4h3r4c9Va2F28XrM8pPTtg9iHGE8JKF\nX9p+S5WRTk/L3c+XO8NT5Vq4Xbr+/P5P58kJ5eMOFl6y8EvbN6kzki/OqWk9OaF83MHCSxZ+\nafsmEY0E4A6MBKBASCMpPylh/CBG8vCShV/avkVEIyk/KWH9IEbu8JKFX9q+SUQjKT8pYf0g\nRu7wkoVf91TNChGNpPykhPWDGLnDSxZ+afsmEY2k/KSE9YMYucNLFn7tUzU3RDSS8pMS1g9i\n5A4vWfiVT9XcEtFI2k9KGD+IkTy8ZOGXtm8R0kgA3sBIAApgJAAFMBKAAhgJQAGMBKAARgJQ\nACMBKICRABTASAAKYCQABTASgAIYCUABjASgAEYCUAAjASiAkQAUwEgACmAkAAUwEoACGAlA\nAYwEoABGAlAAIwEogJEAFMBIAApgJAAFMBKAAhgJQAGMBKAARgJQACMBKICRABTASAAKYCQA\nBTASgAIYCUABjASgAEYCUAAjASiAkQAUwEgACmAkAAUwEoACGAlAAYwEoABGAlAAIwEogJEA\nFMBIAApgJAAFMBKAAhgJQAGMBKAARgJQACMBKICRABTASAAKYCQABTASgAIYCUABjASgAEYC\nUAAjASiAkQAUwEgACmAkAAUwEoACGAlAAYwEoABGAlAAIwEogJEAFMBIAApgJAAF/g9jfZij\nu4d+MwAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ggraph(mygraph, layout = 'dendrogram') + \n",
    "    # 设置边\n",
    "    geom_edge_diagonal() +\n",
    "    # 设置节点名，label表示节点名，filter=leaf表示跳过叶子节点，angle标签方向，hjust和nudge_y标签和节点距离\n",
    "    geom_node_text(aes( label=name, filter=leaf) , angle=90 , hjust=1, nudge_y = -0.01) +\n",
    "    # 设置y轴范围\n",
    "    ylim(-.4, NA)\n",
    "\n",
    "ggraph(mygraph, layout = 'dendrogram') + \n",
    "    geom_edge_diagonal() +\n",
    "    geom_node_text(aes( label=name, filter=leaf) , angle=90 , hjust=1, nudge_y = -0.04) +\n",
    "    # 为每个节点添加点\n",
    "    geom_node_point(aes(filter=leaf) , alpha=0.6) +\n",
    "    ylim(-.5, NA)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2.5 自定义美学 Customize aesthetics\n",
    "在树形图中添加颜色或形状是一项常见的任务。它可以更清楚地显示数据集的组织结构。ggraph的工作原理与ggplot2相同。在每个组件的美学部分，可以使用初始数据帧的一列映射到形状、颜色、大小或其他。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAB2lBMVEUAAAAAbY0Ac1kAmcUA\noXwAtusAwJQGwpcQxJsSwIMYw40pwu4pyqUswGkybAA9x4JGlwBNzPFN07RTtABXtgZeuRBj\nU5lm0/Nm2b9nsgZo0/No2b9pthBvwCl2XAB82fR83siEsBCHyk2KuimLdNaM3vaM4s+VR0GX\nOoGY0maZ0mia4vea5tSlgQCliv+m2Hynjf+n5fin6dqrkv+x3Yyy6fmy7N+znf+74Zq97Pm9\n7uPArf/D5afEmgDGnAbH7/rH8efIoBDJuf/L6LLOqinQY1vQw//Q8fvQ8+vS673TUbXVuE3W\nyv/Z7sfZ9PzZ9e/b0f/cwmbcw2jeeeff8dDgy3zg1v/h9vzh9/Lk0Yzk3P/l89nnhOfn15rn\n4P/p+P3p+fXq3Kfr5f/r9uHt4LLu6f/va93v5b3w+Onw+v3w+/nx7f/y6Mfzb9307ND08f/1\n+vD279n39f/4dm34enH4f3b48+H5jIT59un5+P/6n5n6rqj7Ydf7Zdj7a9n7raf7uLT7wb37\n+fD8et38keP8oef8rur8ycX8z8z81tP9oOf9uO39wO/9yPH9z/P91vT929n94d/95eT96un+\n3Pb+4vf+5/n+7Pr+7+7+8fv+8/L+9vz+9/b///83e7gWAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nO19C4MVRZplTe9UTe9SPbNQ3QMLXQ3DDEzz2GJhUB5FtVrWoiyo4AiKtjx8\njIC2IDUjr9sC8hBBBN8C5n/dfN/IiMyMjMwvIiPintMtdc/NL+NEfPGdirhZee8dCwAA6Iyx\nvjsAAD4ARgIAAsBIAEAAGAkACAAjAQABYCQAIACMBAAEgJEAgAAwEgAQAEYCAALASABAABgJ\nAAgAIwEAAWAkACAAjAQABICRAIAAMBIAEABGAgACwEgAQAAYCQAIACMBAAFgJAAgAIwEAASA\nkQCAADASABAARgIAAsBIAEAAGAkACAAjAQABYCQAIACMBAAEgJEAgAAwEgAQAEYCAALASABA\nABgJAAgAIwEAAWAk+4E5cgCYJPuBOXIAmCT7gTlyAJgk+zGGSbIfmCP7ASM5AMyR/YCRHADm\nyH7ASA4Ac2Q/YCQHgDmyHzCSA8Ac2Q8YyQFgjuwHjOQAMEf2A0ZyAJgj+wEjOQDMkf2AkRwA\n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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ggraph(mygraph, layout = 'dendrogram') + \n",
    "    geom_edge_diagonal() +\n",
    "    geom_node_text(aes( label=name, filter=leaf, color=group) , angle=90 , hjust=1, nudge_y=-0.1) +\n",
    "    geom_node_point(aes(filter=leaf, size=value, color=group) , alpha=0.6) +\n",
    "    ylim(-.6, NA) +\n",
    "    theme(legend.position=\"none\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.3 基于R和ggraph自定义环形树形图\n",
    "本节介绍通过R和ggraph自定义环形树形图。ggraph库的圆形树形图应有其专用页面，因为调整标签可能有些棘手。实际上，它们需要具有良好的角度，可以在图表的左侧上下翻转，并且还需要调整其对齐方式。以下分布介绍："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**创建数据**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Libraries\n",
    "library(ggraph)\n",
    "library(igraph)\n",
    "library(tidyverse)\n",
    "library(RColorBrewer) \n",
    "\n",
    "# 创建数据，类似前面的步骤\n",
    "# create a data frame giving the hierarchical structure of your individuals\n",
    "d1=data.frame(from=\"origin\", to=paste(\"group\", seq(1,5), sep=\"\"))\n",
    "d2=data.frame(from=rep(d1$to, each=5), to=paste(\"subgroup\", seq(1,25), sep=\"_\"))\n",
    "edges=rbind(d1, d2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<ol class=list-inline>\n",
       "\t<li>31</li>\n",
       "\t<li>3</li>\n",
       "</ol>\n"
      ],
      "text/latex": [
       "\\begin{enumerate*}\n",
       "\\item 31\n",
       "\\item 3\n",
       "\\end{enumerate*}\n"
      ],
      "text/markdown": [
       "1. 31\n",
       "2. 3\n",
       "\n",
       "\n"
      ],
      "text/plain": [
       "[1] 31  3"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 6 × 3</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>name</th><th scope=col>value</th><th scope=col>group</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;fct&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>origin</td><td>0.2694659</td><td>NA    </td></tr>\n",
       "\t<tr><td>group1</td><td>0.6816846</td><td>origin</td></tr>\n",
       "\t<tr><td>group2</td><td>0.2849697</td><td>origin</td></tr>\n",
       "\t<tr><td>group3</td><td>0.2955677</td><td>origin</td></tr>\n",
       "\t<tr><td>group4</td><td>0.6879641</td><td>origin</td></tr>\n",
       "\t<tr><td>group5</td><td>0.2655517</td><td>origin</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 6 × 3\n",
       "\\begin{tabular}{r|lll}\n",
       " name & value & group\\\\\n",
       " <fct> & <dbl> & <fct>\\\\\n",
       "\\hline\n",
       "\t origin & 0.2694659 & NA    \\\\\n",
       "\t group1 & 0.6816846 & origin\\\\\n",
       "\t group2 & 0.2849697 & origin\\\\\n",
       "\t group3 & 0.2955677 & origin\\\\\n",
       "\t group4 & 0.6879641 & origin\\\\\n",
       "\t group5 & 0.2655517 & origin\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 6 × 3\n",
       "\n",
       "| name &lt;fct&gt; | value &lt;dbl&gt; | group &lt;fct&gt; |\n",
       "|---|---|---|\n",
       "| origin | 0.2694659 | NA     |\n",
       "| group1 | 0.6816846 | origin |\n",
       "| group2 | 0.2849697 | origin |\n",
       "| group3 | 0.2955677 | origin |\n",
       "| group4 | 0.6879641 | origin |\n",
       "| group5 | 0.2655517 | origin |\n",
       "\n"
      ],
      "text/plain": [
       "  name   value     group \n",
       "1 origin 0.2694659 NA    \n",
       "2 group1 0.6816846 origin\n",
       "3 group2 0.2849697 origin\n",
       "4 group3 0.2955677 origin\n",
       "5 group4 0.6879641 origin\n",
       "6 group5 0.2655517 origin"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# create a vertices data.frame. One line per object of our hierarchy\n",
    "# 为每个节点添加值\n",
    "vertices = data.frame(\n",
    "  name = unique(c(as.character(edges$from), as.character(edges$to))),\n",
    "  # 正态分布随机取值,共获得31个值。如果是其他数据，去掉value = runif(31)，查看运行后的dim(vertices)就知道该填多少了\n",
    "  value = runif(31)\n",
    ") \n",
    "# Let's add a column with the group of each name. It will be useful later to color points\n",
    "# 为每个节点添加分组信息\n",
    "vertices$group = edges$from[ match( vertices$name, edges$to ) ]\n",
    "dim(vertices)\n",
    "head(vertices)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**添加绘图信息**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 31 × 5</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>name</th><th scope=col>value</th><th scope=col>group</th><th scope=col>id</th><th scope=col>angle</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>origin     </td><td>0.26946595</td><td>NA    </td><td>NA</td><td>    NA</td></tr>\n",
       "\t<tr><td>group1     </td><td>0.68168456</td><td>origin</td><td>NA</td><td>    NA</td></tr>\n",
       "\t<tr><td>group2     </td><td>0.28496969</td><td>origin</td><td>NA</td><td>    NA</td></tr>\n",
       "\t<tr><td>group3     </td><td>0.29556769</td><td>origin</td><td>NA</td><td>    NA</td></tr>\n",
       "\t<tr><td>group4     </td><td>0.68796411</td><td>origin</td><td>NA</td><td>    NA</td></tr>\n",
       "\t<tr><td>group5     </td><td>0.26555169</td><td>origin</td><td>NA</td><td>    NA</td></tr>\n",
       "\t<tr><td>subgroup_1 </td><td>0.13447919</td><td>group1</td><td> 1</td><td> -14.4</td></tr>\n",
       "\t<tr><td>subgroup_2 </td><td>0.87993752</td><td>group1</td><td> 2</td><td> -28.8</td></tr>\n",
       "\t<tr><td>subgroup_3 </td><td>0.73281460</td><td>group1</td><td> 3</td><td> -43.2</td></tr>\n",
       "\t<tr><td>subgroup_4 </td><td>0.05199267</td><td>group1</td><td> 4</td><td> -57.6</td></tr>\n",
       "\t<tr><td>subgroup_5 </td><td>0.95072049</td><td>group1</td><td> 5</td><td> -72.0</td></tr>\n",
       "\t<tr><td>subgroup_6 </td><td>0.67968533</td><td>group2</td><td> 6</td><td> -86.4</td></tr>\n",
       "\t<tr><td>subgroup_7 </td><td>0.60904665</td><td>group2</td><td> 7</td><td>-100.8</td></tr>\n",
       "\t<tr><td>subgroup_8 </td><td>0.91107152</td><td>group2</td><td> 8</td><td>-115.2</td></tr>\n",
       "\t<tr><td>subgroup_9 </td><td>0.56348062</td><td>group2</td><td> 9</td><td>-129.6</td></tr>\n",
       "\t<tr><td>subgroup_10</td><td>0.78231794</td><td>group2</td><td>10</td><td>-144.0</td></tr>\n",
       "\t<tr><td>subgroup_11</td><td>0.39831777</td><td>group3</td><td>11</td><td>-158.4</td></tr>\n",
       "\t<tr><td>subgroup_12</td><td>0.39330663</td><td>group3</td><td>12</td><td>-172.8</td></tr>\n",
       "\t<tr><td>subgroup_13</td><td>0.57479330</td><td>group3</td><td>13</td><td>-187.2</td></tr>\n",
       "\t<tr><td>subgroup_14</td><td>0.61543980</td><td>group3</td><td>14</td><td>-201.6</td></tr>\n",
       "\t<tr><td>subgroup_15</td><td>0.05581496</td><td>group3</td><td>15</td><td>-216.0</td></tr>\n",
       "\t<tr><td>subgroup_16</td><td>0.34000915</td><td>group4</td><td>16</td><td>-230.4</td></tr>\n",
       "\t<tr><td>subgroup_17</td><td>0.65765123</td><td>group4</td><td>17</td><td>-244.8</td></tr>\n",
       "\t<tr><td>subgroup_18</td><td>0.63469281</td><td>group4</td><td>18</td><td>-259.2</td></tr>\n",
       "\t<tr><td>subgroup_19</td><td>0.41069057</td><td>group4</td><td>19</td><td>-273.6</td></tr>\n",
       "\t<tr><td>subgroup_20</td><td>0.07418380</td><td>group4</td><td>20</td><td>-288.0</td></tr>\n",
       "\t<tr><td>subgroup_21</td><td>0.23007252</td><td>group5</td><td>21</td><td>-302.4</td></tr>\n",
       "\t<tr><td>subgroup_22</td><td>0.86334833</td><td>group5</td><td>22</td><td>-316.8</td></tr>\n",
       "\t<tr><td>subgroup_23</td><td>0.01567696</td><td>group5</td><td>23</td><td>-331.2</td></tr>\n",
       "\t<tr><td>subgroup_24</td><td>0.53860661</td><td>group5</td><td>24</td><td>-345.6</td></tr>\n",
       "\t<tr><td>subgroup_25</td><td>0.74063768</td><td>group5</td><td>25</td><td>-360.0</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 31 × 5\n",
       "\\begin{tabular}{r|lllll}\n",
       " name & value & group & id & angle\\\\\n",
       " <fct> & <dbl> & <fct> & <int> & <dbl>\\\\\n",
       "\\hline\n",
       "\t origin      & 0.26946595 & NA     & NA &     NA\\\\\n",
       "\t group1      & 0.68168456 & origin & NA &     NA\\\\\n",
       "\t group2      & 0.28496969 & origin & NA &     NA\\\\\n",
       "\t group3      & 0.29556769 & origin & NA &     NA\\\\\n",
       "\t group4      & 0.68796411 & origin & NA &     NA\\\\\n",
       "\t group5      & 0.26555169 & origin & NA &     NA\\\\\n",
       "\t subgroup\\_1  & 0.13447919 & group1 &  1 &  -14.4\\\\\n",
       "\t subgroup\\_2  & 0.87993752 & group1 &  2 &  -28.8\\\\\n",
       "\t subgroup\\_3  & 0.73281460 & group1 &  3 &  -43.2\\\\\n",
       "\t subgroup\\_4  & 0.05199267 & group1 &  4 &  -57.6\\\\\n",
       "\t subgroup\\_5  & 0.95072049 & group1 &  5 &  -72.0\\\\\n",
       "\t subgroup\\_6  & 0.67968533 & group2 &  6 &  -86.4\\\\\n",
       "\t subgroup\\_7  & 0.60904665 & group2 &  7 & -100.8\\\\\n",
       "\t subgroup\\_8  & 0.91107152 & group2 &  8 & -115.2\\\\\n",
       "\t subgroup\\_9  & 0.56348062 & group2 &  9 & -129.6\\\\\n",
       "\t subgroup\\_10 & 0.78231794 & group2 & 10 & -144.0\\\\\n",
       "\t subgroup\\_11 & 0.39831777 & group3 & 11 & -158.4\\\\\n",
       "\t subgroup\\_12 & 0.39330663 & group3 & 12 & -172.8\\\\\n",
       "\t subgroup\\_13 & 0.57479330 & group3 & 13 & -187.2\\\\\n",
       "\t subgroup\\_14 & 0.61543980 & group3 & 14 & -201.6\\\\\n",
       "\t subgroup\\_15 & 0.05581496 & group3 & 15 & -216.0\\\\\n",
       "\t subgroup\\_16 & 0.34000915 & group4 & 16 & -230.4\\\\\n",
       "\t subgroup\\_17 & 0.65765123 & group4 & 17 & -244.8\\\\\n",
       "\t subgroup\\_18 & 0.63469281 & group4 & 18 & -259.2\\\\\n",
       "\t subgroup\\_19 & 0.41069057 & group4 & 19 & -273.6\\\\\n",
       "\t subgroup\\_20 & 0.07418380 & group4 & 20 & -288.0\\\\\n",
       "\t subgroup\\_21 & 0.23007252 & group5 & 21 & -302.4\\\\\n",
       "\t subgroup\\_22 & 0.86334833 & group5 & 22 & -316.8\\\\\n",
       "\t subgroup\\_23 & 0.01567696 & group5 & 23 & -331.2\\\\\n",
       "\t subgroup\\_24 & 0.53860661 & group5 & 24 & -345.6\\\\\n",
       "\t subgroup\\_25 & 0.74063768 & group5 & 25 & -360.0\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 31 × 5\n",
       "\n",
       "| name &lt;fct&gt; | value &lt;dbl&gt; | group &lt;fct&gt; | id &lt;int&gt; | angle &lt;dbl&gt; |\n",
       "|---|---|---|---|---|\n",
       "| origin      | 0.26946595 | NA     | NA |     NA |\n",
       "| group1      | 0.68168456 | origin | NA |     NA |\n",
       "| group2      | 0.28496969 | origin | NA |     NA |\n",
       "| group3      | 0.29556769 | origin | NA |     NA |\n",
       "| group4      | 0.68796411 | origin | NA |     NA |\n",
       "| group5      | 0.26555169 | origin | NA |     NA |\n",
       "| subgroup_1  | 0.13447919 | group1 |  1 |  -14.4 |\n",
       "| subgroup_2  | 0.87993752 | group1 |  2 |  -28.8 |\n",
       "| subgroup_3  | 0.73281460 | group1 |  3 |  -43.2 |\n",
       "| subgroup_4  | 0.05199267 | group1 |  4 |  -57.6 |\n",
       "| subgroup_5  | 0.95072049 | group1 |  5 |  -72.0 |\n",
       "| subgroup_6  | 0.67968533 | group2 |  6 |  -86.4 |\n",
       "| subgroup_7  | 0.60904665 | group2 |  7 | -100.8 |\n",
       "| subgroup_8  | 0.91107152 | group2 |  8 | -115.2 |\n",
       "| subgroup_9  | 0.56348062 | group2 |  9 | -129.6 |\n",
       "| subgroup_10 | 0.78231794 | group2 | 10 | -144.0 |\n",
       "| subgroup_11 | 0.39831777 | group3 | 11 | -158.4 |\n",
       "| subgroup_12 | 0.39330663 | group3 | 12 | -172.8 |\n",
       "| subgroup_13 | 0.57479330 | group3 | 13 | -187.2 |\n",
       "| subgroup_14 | 0.61543980 | group3 | 14 | -201.6 |\n",
       "| subgroup_15 | 0.05581496 | group3 | 15 | -216.0 |\n",
       "| subgroup_16 | 0.34000915 | group4 | 16 | -230.4 |\n",
       "| subgroup_17 | 0.65765123 | group4 | 17 | -244.8 |\n",
       "| subgroup_18 | 0.63469281 | group4 | 18 | -259.2 |\n",
       "| subgroup_19 | 0.41069057 | group4 | 19 | -273.6 |\n",
       "| subgroup_20 | 0.07418380 | group4 | 20 | -288.0 |\n",
       "| subgroup_21 | 0.23007252 | group5 | 21 | -302.4 |\n",
       "| subgroup_22 | 0.86334833 | group5 | 22 | -316.8 |\n",
       "| subgroup_23 | 0.01567696 | group5 | 23 | -331.2 |\n",
       "| subgroup_24 | 0.53860661 | group5 | 24 | -345.6 |\n",
       "| subgroup_25 | 0.74063768 | group5 | 25 | -360.0 |\n",
       "\n"
      ],
      "text/plain": [
       "   name        value      group  id angle \n",
       "1  origin      0.26946595 NA     NA     NA\n",
       "2  group1      0.68168456 origin NA     NA\n",
       "3  group2      0.28496969 origin NA     NA\n",
       "4  group3      0.29556769 origin NA     NA\n",
       "5  group4      0.68796411 origin NA     NA\n",
       "6  group5      0.26555169 origin NA     NA\n",
       "7  subgroup_1  0.13447919 group1  1  -14.4\n",
       "8  subgroup_2  0.87993752 group1  2  -28.8\n",
       "9  subgroup_3  0.73281460 group1  3  -43.2\n",
       "10 subgroup_4  0.05199267 group1  4  -57.6\n",
       "11 subgroup_5  0.95072049 group1  5  -72.0\n",
       "12 subgroup_6  0.67968533 group2  6  -86.4\n",
       "13 subgroup_7  0.60904665 group2  7 -100.8\n",
       "14 subgroup_8  0.91107152 group2  8 -115.2\n",
       "15 subgroup_9  0.56348062 group2  9 -129.6\n",
       "16 subgroup_10 0.78231794 group2 10 -144.0\n",
       "17 subgroup_11 0.39831777 group3 11 -158.4\n",
       "18 subgroup_12 0.39330663 group3 12 -172.8\n",
       "19 subgroup_13 0.57479330 group3 13 -187.2\n",
       "20 subgroup_14 0.61543980 group3 14 -201.6\n",
       "21 subgroup_15 0.05581496 group3 15 -216.0\n",
       "22 subgroup_16 0.34000915 group4 16 -230.4\n",
       "23 subgroup_17 0.65765123 group4 17 -244.8\n",
       "24 subgroup_18 0.63469281 group4 18 -259.2\n",
       "25 subgroup_19 0.41069057 group4 19 -273.6\n",
       "26 subgroup_20 0.07418380 group4 20 -288.0\n",
       "27 subgroup_21 0.23007252 group5 21 -302.4\n",
       "28 subgroup_22 0.86334833 group5 22 -316.8\n",
       "29 subgroup_23 0.01567696 group5 23 -331.2\n",
       "30 subgroup_24 0.53860661 group5 24 -345.6\n",
       "31 subgroup_25 0.74063768 group5 25 -360.0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's add information concerning the label we are going to add: angle, horizontal adjustement and potential flip calculate the ANGLE of the labels\n",
    "# 让我们添加有关我们将要添加的标签的信息：角度、水平调整和翻转，计算标签的角度\n",
    "# 添加id值\n",
    "vertices$id=NA\n",
    "myleaves=which(is.na( match(vertices$name, edges$from) ))\n",
    "nleaves=length(myleaves)\n",
    "vertices$id[ myleaves ] = seq(1:nleaves)\n",
    "# 添加角度\n",
    "vertices$angle= -360 * vertices$id / nleaves\n",
    "vertices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 9 × 6</caption>\n",
       "<thead>\n",
       "\t<tr><th></th><th scope=col>name</th><th scope=col>value</th><th scope=col>group</th><th scope=col>id</th><th scope=col>angle</th><th scope=col>hjust</th></tr>\n",
       "\t<tr><th></th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><th scope=row>12</th><td>subgroup_6 </td><td>0.6796853</td><td>group2</td><td> 6</td><td>-86.4</td><td>0</td></tr>\n",
       "\t<tr><th scope=row>13</th><td>subgroup_7 </td><td>0.6090466</td><td>group2</td><td> 7</td><td> 79.2</td><td>1</td></tr>\n",
       "\t<tr><th scope=row>14</th><td>subgroup_8 </td><td>0.9110715</td><td>group2</td><td> 8</td><td> 64.8</td><td>1</td></tr>\n",
       "\t<tr><th scope=row>15</th><td>subgroup_9 </td><td>0.5634806</td><td>group2</td><td> 9</td><td> 50.4</td><td>1</td></tr>\n",
       "\t<tr><th scope=row>16</th><td>subgroup_10</td><td>0.7823179</td><td>group2</td><td>10</td><td> 36.0</td><td>1</td></tr>\n",
       "\t<tr><th scope=row>17</th><td>subgroup_11</td><td>0.3983178</td><td>group3</td><td>11</td><td> 21.6</td><td>1</td></tr>\n",
       "\t<tr><th scope=row>18</th><td>subgroup_12</td><td>0.3933066</td><td>group3</td><td>12</td><td>  7.2</td><td>1</td></tr>\n",
       "\t<tr><th scope=row>19</th><td>subgroup_13</td><td>0.5747933</td><td>group3</td><td>13</td><td> -7.2</td><td>1</td></tr>\n",
       "\t<tr><th scope=row>20</th><td>subgroup_14</td><td>0.6154398</td><td>group3</td><td>14</td><td>-21.6</td><td>1</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 9 × 6\n",
       "\\begin{tabular}{r|llllll}\n",
       "  & name & value & group & id & angle & hjust\\\\\n",
       "  & <fct> & <dbl> & <fct> & <int> & <dbl> & <dbl>\\\\\n",
       "\\hline\n",
       "\t12 & subgroup\\_6  & 0.6796853 & group2 &  6 & -86.4 & 0\\\\\n",
       "\t13 & subgroup\\_7  & 0.6090466 & group2 &  7 &  79.2 & 1\\\\\n",
       "\t14 & subgroup\\_8  & 0.9110715 & group2 &  8 &  64.8 & 1\\\\\n",
       "\t15 & subgroup\\_9  & 0.5634806 & group2 &  9 &  50.4 & 1\\\\\n",
       "\t16 & subgroup\\_10 & 0.7823179 & group2 & 10 &  36.0 & 1\\\\\n",
       "\t17 & subgroup\\_11 & 0.3983178 & group3 & 11 &  21.6 & 1\\\\\n",
       "\t18 & subgroup\\_12 & 0.3933066 & group3 & 12 &   7.2 & 1\\\\\n",
       "\t19 & subgroup\\_13 & 0.5747933 & group3 & 13 &  -7.2 & 1\\\\\n",
       "\t20 & subgroup\\_14 & 0.6154398 & group3 & 14 & -21.6 & 1\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 9 × 6\n",
       "\n",
       "| <!--/--> | name &lt;fct&gt; | value &lt;dbl&gt; | group &lt;fct&gt; | id &lt;int&gt; | angle &lt;dbl&gt; | hjust &lt;dbl&gt; |\n",
       "|---|---|---|---|---|---|---|\n",
       "| 12 | subgroup_6  | 0.6796853 | group2 |  6 | -86.4 | 0 |\n",
       "| 13 | subgroup_7  | 0.6090466 | group2 |  7 |  79.2 | 1 |\n",
       "| 14 | subgroup_8  | 0.9110715 | group2 |  8 |  64.8 | 1 |\n",
       "| 15 | subgroup_9  | 0.5634806 | group2 |  9 |  50.4 | 1 |\n",
       "| 16 | subgroup_10 | 0.7823179 | group2 | 10 |  36.0 | 1 |\n",
       "| 17 | subgroup_11 | 0.3983178 | group3 | 11 |  21.6 | 1 |\n",
       "| 18 | subgroup_12 | 0.3933066 | group3 | 12 |   7.2 | 1 |\n",
       "| 19 | subgroup_13 | 0.5747933 | group3 | 13 |  -7.2 | 1 |\n",
       "| 20 | subgroup_14 | 0.6154398 | group3 | 14 | -21.6 | 1 |\n",
       "\n"
      ],
      "text/plain": [
       "   name        value     group  id angle hjust\n",
       "12 subgroup_6  0.6796853 group2  6 -86.4 0    \n",
       "13 subgroup_7  0.6090466 group2  7  79.2 1    \n",
       "14 subgroup_8  0.9110715 group2  8  64.8 1    \n",
       "15 subgroup_9  0.5634806 group2  9  50.4 1    \n",
       "16 subgroup_10 0.7823179 group2 10  36.0 1    \n",
       "17 subgroup_11 0.3983178 group3 11  21.6 1    \n",
       "18 subgroup_12 0.3933066 group3 12   7.2 1    \n",
       "19 subgroup_13 0.5747933 group3 13  -7.2 1    \n",
       "20 subgroup_14 0.6154398 group3 14 -21.6 1    "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# calculate the alignment of labels: right or left\n",
    "# 判断标签是偏向左边还是右边\n",
    "# hjust表示是否水平翻转\n",
    "vertices$hjust<-ifelse(vertices$angle < -90 & vertices$angle > -270, 1, 0)\n",
    " \n",
    "# flip angle BY to make them readable\n",
    "# 是否翻转标签\n",
    "vertices$angle<-ifelse(vertices$angle < -90 & vertices$angle > -270, vertices$angle+180, vertices$angle)\n",
    "vertices[12:20,]\n",
    "# Create a graph object\n",
    "# 创建图\n",
    "mygraph <- graph_from_data_frame( edges, vertices=vertices )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 31 × 6</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>name</th><th scope=col>value</th><th scope=col>group</th><th scope=col>id</th><th scope=col>angle</th><th scope=col>hjust</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>origin     </td><td>0.26946595</td><td>NA    </td><td>NA</td><td>    NA</td><td>NA</td></tr>\n",
       "\t<tr><td>group1     </td><td>0.68168456</td><td>origin</td><td>NA</td><td>    NA</td><td>NA</td></tr>\n",
       "\t<tr><td>group2     </td><td>0.28496969</td><td>origin</td><td>NA</td><td>    NA</td><td>NA</td></tr>\n",
       "\t<tr><td>group3     </td><td>0.29556769</td><td>origin</td><td>NA</td><td>    NA</td><td>NA</td></tr>\n",
       "\t<tr><td>group4     </td><td>0.68796411</td><td>origin</td><td>NA</td><td>    NA</td><td>NA</td></tr>\n",
       "\t<tr><td>group5     </td><td>0.26555169</td><td>origin</td><td>NA</td><td>    NA</td><td>NA</td></tr>\n",
       "\t<tr><td>subgroup_1 </td><td>0.13447919</td><td>group1</td><td> 1</td><td> -14.4</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_2 </td><td>0.87993752</td><td>group1</td><td> 2</td><td> -28.8</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_3 </td><td>0.73281460</td><td>group1</td><td> 3</td><td> -43.2</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_4 </td><td>0.05199267</td><td>group1</td><td> 4</td><td> -57.6</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_5 </td><td>0.95072049</td><td>group1</td><td> 5</td><td> -72.0</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_6 </td><td>0.67968533</td><td>group2</td><td> 6</td><td> -86.4</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_7 </td><td>0.60904665</td><td>group2</td><td> 7</td><td>  79.2</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_8 </td><td>0.91107152</td><td>group2</td><td> 8</td><td>  64.8</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_9 </td><td>0.56348062</td><td>group2</td><td> 9</td><td>  50.4</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_10</td><td>0.78231794</td><td>group2</td><td>10</td><td>  36.0</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_11</td><td>0.39831777</td><td>group3</td><td>11</td><td>  21.6</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_12</td><td>0.39330663</td><td>group3</td><td>12</td><td>   7.2</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_13</td><td>0.57479330</td><td>group3</td><td>13</td><td>  -7.2</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_14</td><td>0.61543980</td><td>group3</td><td>14</td><td> -21.6</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_15</td><td>0.05581496</td><td>group3</td><td>15</td><td> -36.0</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_16</td><td>0.34000915</td><td>group4</td><td>16</td><td> -50.4</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_17</td><td>0.65765123</td><td>group4</td><td>17</td><td> -64.8</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_18</td><td>0.63469281</td><td>group4</td><td>18</td><td> -79.2</td><td> 1</td></tr>\n",
       "\t<tr><td>subgroup_19</td><td>0.41069057</td><td>group4</td><td>19</td><td>-273.6</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_20</td><td>0.07418380</td><td>group4</td><td>20</td><td>-288.0</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_21</td><td>0.23007252</td><td>group5</td><td>21</td><td>-302.4</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_22</td><td>0.86334833</td><td>group5</td><td>22</td><td>-316.8</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_23</td><td>0.01567696</td><td>group5</td><td>23</td><td>-331.2</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_24</td><td>0.53860661</td><td>group5</td><td>24</td><td>-345.6</td><td> 0</td></tr>\n",
       "\t<tr><td>subgroup_25</td><td>0.74063768</td><td>group5</td><td>25</td><td>-360.0</td><td> 0</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 31 × 6\n",
       "\\begin{tabular}{r|llllll}\n",
       " name & value & group & id & angle & hjust\\\\\n",
       " <fct> & <dbl> & <fct> & <int> & <dbl> & <dbl>\\\\\n",
       "\\hline\n",
       "\t origin      & 0.26946595 & NA     & NA &     NA & NA\\\\\n",
       "\t group1      & 0.68168456 & origin & NA &     NA & NA\\\\\n",
       "\t group2      & 0.28496969 & origin & NA &     NA & NA\\\\\n",
       "\t group3      & 0.29556769 & origin & NA &     NA & NA\\\\\n",
       "\t group4      & 0.68796411 & origin & NA &     NA & NA\\\\\n",
       "\t group5      & 0.26555169 & origin & NA &     NA & NA\\\\\n",
       "\t subgroup\\_1  & 0.13447919 & group1 &  1 &  -14.4 &  0\\\\\n",
       "\t subgroup\\_2  & 0.87993752 & group1 &  2 &  -28.8 &  0\\\\\n",
       "\t subgroup\\_3  & 0.73281460 & group1 &  3 &  -43.2 &  0\\\\\n",
       "\t subgroup\\_4  & 0.05199267 & group1 &  4 &  -57.6 &  0\\\\\n",
       "\t subgroup\\_5  & 0.95072049 & group1 &  5 &  -72.0 &  0\\\\\n",
       "\t subgroup\\_6  & 0.67968533 & group2 &  6 &  -86.4 &  0\\\\\n",
       "\t subgroup\\_7  & 0.60904665 & group2 &  7 &   79.2 &  1\\\\\n",
       "\t subgroup\\_8  & 0.91107152 & group2 &  8 &   64.8 &  1\\\\\n",
       "\t subgroup\\_9  & 0.56348062 & group2 &  9 &   50.4 &  1\\\\\n",
       "\t subgroup\\_10 & 0.78231794 & group2 & 10 &   36.0 &  1\\\\\n",
       "\t subgroup\\_11 & 0.39831777 & group3 & 11 &   21.6 &  1\\\\\n",
       "\t subgroup\\_12 & 0.39330663 & group3 & 12 &    7.2 &  1\\\\\n",
       "\t subgroup\\_13 & 0.57479330 & group3 & 13 &   -7.2 &  1\\\\\n",
       "\t subgroup\\_14 & 0.61543980 & group3 & 14 &  -21.6 &  1\\\\\n",
       "\t subgroup\\_15 & 0.05581496 & group3 & 15 &  -36.0 &  1\\\\\n",
       "\t subgroup\\_16 & 0.34000915 & group4 & 16 &  -50.4 &  1\\\\\n",
       "\t subgroup\\_17 & 0.65765123 & group4 & 17 &  -64.8 &  1\\\\\n",
       "\t subgroup\\_18 & 0.63469281 & group4 & 18 &  -79.2 &  1\\\\\n",
       "\t subgroup\\_19 & 0.41069057 & group4 & 19 & -273.6 &  0\\\\\n",
       "\t subgroup\\_20 & 0.07418380 & group4 & 20 & -288.0 &  0\\\\\n",
       "\t subgroup\\_21 & 0.23007252 & group5 & 21 & -302.4 &  0\\\\\n",
       "\t subgroup\\_22 & 0.86334833 & group5 & 22 & -316.8 &  0\\\\\n",
       "\t subgroup\\_23 & 0.01567696 & group5 & 23 & -331.2 &  0\\\\\n",
       "\t subgroup\\_24 & 0.53860661 & group5 & 24 & -345.6 &  0\\\\\n",
       "\t subgroup\\_25 & 0.74063768 & group5 & 25 & -360.0 &  0\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 31 × 6\n",
       "\n",
       "| name &lt;fct&gt; | value &lt;dbl&gt; | group &lt;fct&gt; | id &lt;int&gt; | angle &lt;dbl&gt; | hjust &lt;dbl&gt; |\n",
       "|---|---|---|---|---|---|\n",
       "| origin      | 0.26946595 | NA     | NA |     NA | NA |\n",
       "| group1      | 0.68168456 | origin | NA |     NA | NA |\n",
       "| group2      | 0.28496969 | origin | NA |     NA | NA |\n",
       "| group3      | 0.29556769 | origin | NA |     NA | NA |\n",
       "| group4      | 0.68796411 | origin | NA |     NA | NA |\n",
       "| group5      | 0.26555169 | origin | NA |     NA | NA |\n",
       "| subgroup_1  | 0.13447919 | group1 |  1 |  -14.4 |  0 |\n",
       "| subgroup_2  | 0.87993752 | group1 |  2 |  -28.8 |  0 |\n",
       "| subgroup_3  | 0.73281460 | group1 |  3 |  -43.2 |  0 |\n",
       "| subgroup_4  | 0.05199267 | group1 |  4 |  -57.6 |  0 |\n",
       "| subgroup_5  | 0.95072049 | group1 |  5 |  -72.0 |  0 |\n",
       "| subgroup_6  | 0.67968533 | group2 |  6 |  -86.4 |  0 |\n",
       "| subgroup_7  | 0.60904665 | group2 |  7 |   79.2 |  1 |\n",
       "| subgroup_8  | 0.91107152 | group2 |  8 |   64.8 |  1 |\n",
       "| subgroup_9  | 0.56348062 | group2 |  9 |   50.4 |  1 |\n",
       "| subgroup_10 | 0.78231794 | group2 | 10 |   36.0 |  1 |\n",
       "| subgroup_11 | 0.39831777 | group3 | 11 |   21.6 |  1 |\n",
       "| subgroup_12 | 0.39330663 | group3 | 12 |    7.2 |  1 |\n",
       "| subgroup_13 | 0.57479330 | group3 | 13 |   -7.2 |  1 |\n",
       "| subgroup_14 | 0.61543980 | group3 | 14 |  -21.6 |  1 |\n",
       "| subgroup_15 | 0.05581496 | group3 | 15 |  -36.0 |  1 |\n",
       "| subgroup_16 | 0.34000915 | group4 | 16 |  -50.4 |  1 |\n",
       "| subgroup_17 | 0.65765123 | group4 | 17 |  -64.8 |  1 |\n",
       "| subgroup_18 | 0.63469281 | group4 | 18 |  -79.2 |  1 |\n",
       "| subgroup_19 | 0.41069057 | group4 | 19 | -273.6 |  0 |\n",
       "| subgroup_20 | 0.07418380 | group4 | 20 | -288.0 |  0 |\n",
       "| subgroup_21 | 0.23007252 | group5 | 21 | -302.4 |  0 |\n",
       "| subgroup_22 | 0.86334833 | group5 | 22 | -316.8 |  0 |\n",
       "| subgroup_23 | 0.01567696 | group5 | 23 | -331.2 |  0 |\n",
       "| subgroup_24 | 0.53860661 | group5 | 24 | -345.6 |  0 |\n",
       "| subgroup_25 | 0.74063768 | group5 | 25 | -360.0 |  0 |\n",
       "\n"
      ],
      "text/plain": [
       "   name        value      group  id angle  hjust\n",
       "1  origin      0.26946595 NA     NA     NA NA   \n",
       "2  group1      0.68168456 origin NA     NA NA   \n",
       "3  group2      0.28496969 origin NA     NA NA   \n",
       "4  group3      0.29556769 origin NA     NA NA   \n",
       "5  group4      0.68796411 origin NA     NA NA   \n",
       "6  group5      0.26555169 origin NA     NA NA   \n",
       "7  subgroup_1  0.13447919 group1  1  -14.4  0   \n",
       "8  subgroup_2  0.87993752 group1  2  -28.8  0   \n",
       "9  subgroup_3  0.73281460 group1  3  -43.2  0   \n",
       "10 subgroup_4  0.05199267 group1  4  -57.6  0   \n",
       "11 subgroup_5  0.95072049 group1  5  -72.0  0   \n",
       "12 subgroup_6  0.67968533 group2  6  -86.4  0   \n",
       "13 subgroup_7  0.60904665 group2  7   79.2  1   \n",
       "14 subgroup_8  0.91107152 group2  8   64.8  1   \n",
       "15 subgroup_9  0.56348062 group2  9   50.4  1   \n",
       "16 subgroup_10 0.78231794 group2 10   36.0  1   \n",
       "17 subgroup_11 0.39831777 group3 11   21.6  1   \n",
       "18 subgroup_12 0.39330663 group3 12    7.2  1   \n",
       "19 subgroup_13 0.57479330 group3 13   -7.2  1   \n",
       "20 subgroup_14 0.61543980 group3 14  -21.6  1   \n",
       "21 subgroup_15 0.05581496 group3 15  -36.0  1   \n",
       "22 subgroup_16 0.34000915 group4 16  -50.4  1   \n",
       "23 subgroup_17 0.65765123 group4 17  -64.8  1   \n",
       "24 subgroup_18 0.63469281 group4 18  -79.2  1   \n",
       "25 subgroup_19 0.41069057 group4 19 -273.6  0   \n",
       "26 subgroup_20 0.07418380 group4 20 -288.0  0   \n",
       "27 subgroup_21 0.23007252 group5 21 -302.4  0   \n",
       "28 subgroup_22 0.86334833 group5 22 -316.8  0   \n",
       "29 subgroup_23 0.01567696 group5 23 -331.2  0   \n",
       "30 subgroup_24 0.53860661 group5 24 -345.6  0   \n",
       "31 subgroup_25 0.74063768 group5 25 -360.0  0   "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "vertices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nEwAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Make the plot\n",
    "p<-ggraph(mygraph, layout = 'dendrogram', circular = TRUE) + \n",
    "    # 设置边\n",
    "    geom_edge_diagonal(colour=\"grey\") +\n",
    "    # 设置边的颜色\n",
    "    scale_edge_colour_distiller(palette = \"RdPu\") +\n",
    "    # 设置点的标签\n",
    "    geom_node_text(aes(x = x*1.15, y=y*1.15, filter = leaf, label=name, angle = angle, hjust=hjust, colour=group), size=2.7, alpha=1) +\n",
    "    # 设置点的形状\n",
    "    geom_node_point(aes(filter = leaf, x = x*1.07, y=y*1.07, colour=group, size=value, alpha=0.2)) +\n",
    "    # 控制颜色\n",
    "    scale_colour_manual(values= rep( brewer.pal(9,\"Paired\") , 30)) +\n",
    "    scale_size_continuous( range = c(0.1,10) ) +\n",
    "    theme_void() +\n",
    "    theme( \n",
    "        # 不显示图例\n",
    "        legend.position=\"none\",\n",
    "        plot.margin=unit(c(0,0,0,0),\"cm\"),\n",
    "    ) +\n",
    "    expand_limits(x = c(-1.3, 1.3), y = c(-1.3, 1.3))\n",
    "p\n",
    "# 保存数据 Save at png\n",
    "ggsave(p, file=\"output.png\", width=10, height=10,dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "另外对于标签角度的设置多说几句，不同的平台标签角度设置不一样。标签的角度设置主要有以下三行代码：\n",
    "```\n",
    "# 添加角度\n",
    "vertices$angle= -360 * vertices$id / nleaves\n",
    "# hjust表示是否水平翻转\n",
    "vertices$hjust<-ifelse(vertices$angle < -90 & vertices$angle > -270, 1, 0)\n",
    "# 是否翻转标签\n",
    "vertices$angle<-ifelse(vertices$angle < -90 & vertices$angle > -270, vertices$angle+180, vertices$angle)\n",
    "```\n",
    "\n",
    "第一行代码指的是给每个标签赋予一个角度值，通常设置这一行，其他两行不设置，或者跳过，图形基本上就会完成。只不过在环形左半边标签是翻转的，就是字朝下。如果要字朝上就设置先水平反正左边的标签，然后180度旋转左边的标签，右边标签不变就行了。\n",
    "\n",
    "比如通过第一行我们获得的角度值，subgroup_7到subgroup_18处于左半边，角度其实范围为-90到-270度，所以通过第二行和第三行代码只要设置-90度到-270度的点，水平翻转然后翻转标签就行了。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2 聚类结果的树形图 DENDROGRAM FROM CLUSTERING RESULT.\n",
    "层次聚类是数据科学中的一项常见任务，可以使用R中的hclust()函数来执行。下面的示例将指导您完成整个过程，演示如何准备数据、如何运行聚类以及如何构建适当的图表以可视化其结果。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.1 用R进行聚类的最基本树形图 Most basic dendrogram for clustering with R\n",
    "聚类允许通过相似性将样本分组，并且其结果可以可视化为树形图。这篇文章描述了该hclust()函数的基本用法，并根据其输出构建树形图。对于层次聚类树形图有以下极大要素：\n",
    "+ 输入数据集是一个矩阵，其中每一行是一个样本，每一列是一个变量。可以使用t()函数转置矩阵。\n",
    "+ 聚类是在提供样本之间距离的正方形矩阵（sample x sample）上执行的，距离矩阵可以使用dist()或cor()函数计算，具体取决于您提出的问题\n",
    "+ hclust()函数用于执行分层聚类\n",
    "+ 它的输出可以用plot()函数直接可视化。请参阅可能的自定义。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**首先产生数据集**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A matrix: 20 × 10 of type int</caption>\n",
       "<thead>\n",
       "\t<tr><th></th><th scope=col>variable1</th><th scope=col>variable2</th><th scope=col>variable3</th><th scope=col>variable4</th><th scope=col>variable5</th><th scope=col>variable6</th><th scope=col>variable7</th><th scope=col>variable8</th><th scope=col>variable9</th><th scope=col>variable10</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><th scope=row>sample_1</th><td>  49</td><td> 863</td><td> 888</td><td> 361</td><td>1285</td><td>1695</td><td> 258</td><td> 821</td><td> 459</td><td>1715</td></tr>\n",
       "\t<tr><th scope=row>sample_2</th><td> 251</td><td> 673</td><td>1096</td><td> 963</td><td>1874</td><td>1837</td><td> 876</td><td>1329</td><td>1565</td><td>1286</td></tr>\n",
       "\t<tr><th scope=row>sample_3</th><td> 156</td><td> 220</td><td>  73</td><td> 726</td><td>1356</td><td>1951</td><td> 108</td><td> 751</td><td>1218</td><td> 823</td></tr>\n",
       "\t<tr><th scope=row>sample_4</th><td>1241</td><td> 363</td><td> 367</td><td>1097</td><td> 847</td><td> 275</td><td>1415</td><td> 582</td><td> 646</td><td> 711</td></tr>\n",
       "\t<tr><th scope=row>sample_5</th><td> 533</td><td>1006</td><td> 440</td><td>1962</td><td> 510</td><td>  70</td><td> 732</td><td>   5</td><td> 584</td><td> 899</td></tr>\n",
       "\t<tr><th scope=row>sample_6</th><td>1443</td><td>1758</td><td> 204</td><td>1216</td><td>1248</td><td> 307</td><td>1072</td><td>1975</td><td> 719</td><td>1776</td></tr>\n",
       "\t<tr><th scope=row>sample_7</th><td> 412</td><td>   8</td><td>1983</td><td> 665</td><td> 197</td><td>1347</td><td> 612</td><td> 656</td><td> 557</td><td> 186</td></tr>\n",
       "\t<tr><th scope=row>sample_8</th><td>1856</td><td>1850</td><td> 548</td><td> 957</td><td> 150</td><td> 296</td><td> 405</td><td>1340</td><td>1088</td><td> 672</td></tr>\n",
       "\t<tr><th scope=row>sample_9</th><td> 994</td><td>1171</td><td> 233</td><td>1656</td><td>1732</td><td> 953</td><td>1651</td><td> 918</td><td>  60</td><td>1676</td></tr>\n",
       "\t<tr><th scope=row>sample_10</th><td> 715</td><td> 272</td><td> 368</td><td> 670</td><td> 688</td><td>1743</td><td> 724</td><td>1956</td><td> 897</td><td>1974</td></tr>\n",
       "\t<tr><th scope=row>sample_11</th><td> 820</td><td>1374</td><td> 934</td><td>  65</td><td> 842</td><td>1269</td><td> 917</td><td> 581</td><td> 324</td><td>   1</td></tr>\n",
       "\t<tr><th scope=row>sample_12</th><td>1692</td><td> 915</td><td> 944</td><td> 824</td><td> 164</td><td> 378</td><td>1439</td><td>1298</td><td> 270</td><td> 389</td></tr>\n",
       "\t<tr><th scope=row>sample_13</th><td> 128</td><td> 707</td><td> 286</td><td> 444</td><td>1893</td><td>1179</td><td>  28</td><td> 778</td><td>1172</td><td> 916</td></tr>\n",
       "\t<tr><th scope=row>sample_14</th><td> 805</td><td>1847</td><td> 308</td><td>1536</td><td>1008</td><td> 236</td><td>1631</td><td> 628</td><td>1943</td><td>1270</td></tr>\n",
       "\t<tr><th scope=row>sample_15</th><td>1585</td><td> 997</td><td>1933</td><td>1135</td><td> 651</td><td>1447</td><td>1598</td><td> 402</td><td>1205</td><td> 339</td></tr>\n",
       "\t<tr><th scope=row>sample_16</th><td> 151</td><td> 216</td><td> 427</td><td> 735</td><td> 773</td><td>1001</td><td> 684</td><td>1700</td><td>1639</td><td>1782</td></tr>\n",
       "\t<tr><th scope=row>sample_17</th><td> 408</td><td>1303</td><td> 449</td><td>1906</td><td>1965</td><td> 752</td><td> 381</td><td>1637</td><td>1894</td><td>1524</td></tr>\n",
       "\t<tr><th scope=row>sample_18</th><td> 257</td><td>1859</td><td>1871</td><td>  81</td><td>1696</td><td>1886</td><td>1774</td><td>1845</td><td> 839</td><td> 152</td></tr>\n",
       "\t<tr><th scope=row>sample_19</th><td> 840</td><td>1240</td><td>1188</td><td> 437</td><td>1125</td><td> 256</td><td> 960</td><td>1401</td><td> 193</td><td>1552</td></tr>\n",
       "\t<tr><th scope=row>sample_20</th><td>1902</td><td>1087</td><td>1112</td><td>1481</td><td> 353</td><td> 407</td><td> 199</td><td>  71</td><td> 547</td><td> 404</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A matrix: 20 × 10 of type int\n",
       "\\begin{tabular}{r|llllllllll}\n",
       "  & variable1 & variable2 & variable3 & variable4 & variable5 & variable6 & variable7 & variable8 & variable9 & variable10\\\\\n",
       "\\hline\n",
       "\tsample\\_1 &   49 &  863 &  888 &  361 & 1285 & 1695 &  258 &  821 &  459 & 1715\\\\\n",
       "\tsample\\_2 &  251 &  673 & 1096 &  963 & 1874 & 1837 &  876 & 1329 & 1565 & 1286\\\\\n",
       "\tsample\\_3 &  156 &  220 &   73 &  726 & 1356 & 1951 &  108 &  751 & 1218 &  823\\\\\n",
       "\tsample\\_4 & 1241 &  363 &  367 & 1097 &  847 &  275 & 1415 &  582 &  646 &  711\\\\\n",
       "\tsample\\_5 &  533 & 1006 &  440 & 1962 &  510 &   70 &  732 &    5 &  584 &  899\\\\\n",
       "\tsample\\_6 & 1443 & 1758 &  204 & 1216 & 1248 &  307 & 1072 & 1975 &  719 & 1776\\\\\n",
       "\tsample\\_7 &  412 &    8 & 1983 &  665 &  197 & 1347 &  612 &  656 &  557 &  186\\\\\n",
       "\tsample\\_8 & 1856 & 1850 &  548 &  957 &  150 &  296 &  405 & 1340 & 1088 &  672\\\\\n",
       "\tsample\\_9 &  994 & 1171 &  233 & 1656 & 1732 &  953 & 1651 &  918 &   60 & 1676\\\\\n",
       "\tsample\\_10 &  715 &  272 &  368 &  670 &  688 & 1743 &  724 & 1956 &  897 & 1974\\\\\n",
       "\tsample\\_11 &  820 & 1374 &  934 &   65 &  842 & 1269 &  917 &  581 &  324 &    1\\\\\n",
       "\tsample\\_12 & 1692 &  915 &  944 &  824 &  164 &  378 & 1439 & 1298 &  270 &  389\\\\\n",
       "\tsample\\_13 &  128 &  707 &  286 &  444 & 1893 & 1179 &   28 &  778 & 1172 &  916\\\\\n",
       "\tsample\\_14 &  805 & 1847 &  308 & 1536 & 1008 &  236 & 1631 &  628 & 1943 & 1270\\\\\n",
       "\tsample\\_15 & 1585 &  997 & 1933 & 1135 &  651 & 1447 & 1598 &  402 & 1205 &  339\\\\\n",
       "\tsample\\_16 &  151 &  216 &  427 &  735 &  773 & 1001 &  684 & 1700 & 1639 & 1782\\\\\n",
       "\tsample\\_17 &  408 & 1303 &  449 & 1906 & 1965 &  752 &  381 & 1637 & 1894 & 1524\\\\\n",
       "\tsample\\_18 &  257 & 1859 & 1871 &   81 & 1696 & 1886 & 1774 & 1845 &  839 &  152\\\\\n",
       "\tsample\\_19 &  840 & 1240 & 1188 &  437 & 1125 &  256 &  960 & 1401 &  193 & 1552\\\\\n",
       "\tsample\\_20 & 1902 & 1087 & 1112 & 1481 &  353 &  407 &  199 &   71 &  547 &  404\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A matrix: 20 × 10 of type int\n",
       "\n",
       "| <!--/--> | variable1 | variable2 | variable3 | variable4 | variable5 | variable6 | variable7 | variable8 | variable9 | variable10 |\n",
       "|---|---|---|---|---|---|---|---|---|---|---|\n",
       "| sample_1 |   49 |  863 |  888 |  361 | 1285 | 1695 |  258 |  821 |  459 | 1715 |\n",
       "| sample_2 |  251 |  673 | 1096 |  963 | 1874 | 1837 |  876 | 1329 | 1565 | 1286 |\n",
       "| sample_3 |  156 |  220 |   73 |  726 | 1356 | 1951 |  108 |  751 | 1218 |  823 |\n",
       "| sample_4 | 1241 |  363 |  367 | 1097 |  847 |  275 | 1415 |  582 |  646 |  711 |\n",
       "| sample_5 |  533 | 1006 |  440 | 1962 |  510 |   70 |  732 |    5 |  584 |  899 |\n",
       "| sample_6 | 1443 | 1758 |  204 | 1216 | 1248 |  307 | 1072 | 1975 |  719 | 1776 |\n",
       "| sample_7 |  412 |    8 | 1983 |  665 |  197 | 1347 |  612 |  656 |  557 |  186 |\n",
       "| sample_8 | 1856 | 1850 |  548 |  957 |  150 |  296 |  405 | 1340 | 1088 |  672 |\n",
       "| sample_9 |  994 | 1171 |  233 | 1656 | 1732 |  953 | 1651 |  918 |   60 | 1676 |\n",
       "| sample_10 |  715 |  272 |  368 |  670 |  688 | 1743 |  724 | 1956 |  897 | 1974 |\n",
       "| sample_11 |  820 | 1374 |  934 |   65 |  842 | 1269 |  917 |  581 |  324 |    1 |\n",
       "| sample_12 | 1692 |  915 |  944 |  824 |  164 |  378 | 1439 | 1298 |  270 |  389 |\n",
       "| sample_13 |  128 |  707 |  286 |  444 | 1893 | 1179 |   28 |  778 | 1172 |  916 |\n",
       "| sample_14 |  805 | 1847 |  308 | 1536 | 1008 |  236 | 1631 |  628 | 1943 | 1270 |\n",
       "| sample_15 | 1585 |  997 | 1933 | 1135 |  651 | 1447 | 1598 |  402 | 1205 |  339 |\n",
       "| sample_16 |  151 |  216 |  427 |  735 |  773 | 1001 |  684 | 1700 | 1639 | 1782 |\n",
       "| sample_17 |  408 | 1303 |  449 | 1906 | 1965 |  752 |  381 | 1637 | 1894 | 1524 |\n",
       "| sample_18 |  257 | 1859 | 1871 |   81 | 1696 | 1886 | 1774 | 1845 |  839 |  152 |\n",
       "| sample_19 |  840 | 1240 | 1188 |  437 | 1125 |  256 |  960 | 1401 |  193 | 1552 |\n",
       "| sample_20 | 1902 | 1087 | 1112 | 1481 |  353 |  407 |  199 |   71 |  547 |  404 |\n",
       "\n"
      ],
      "text/plain": [
       "          variable1 variable2 variable3 variable4 variable5 variable6 variable7\n",
       "sample_1    49       863       888       361      1285      1695       258     \n",
       "sample_2   251       673      1096       963      1874      1837       876     \n",
       "sample_3   156       220        73       726      1356      1951       108     \n",
       "sample_4  1241       363       367      1097       847       275      1415     \n",
       "sample_5   533      1006       440      1962       510        70       732     \n",
       "sample_6  1443      1758       204      1216      1248       307      1072     \n",
       "sample_7   412         8      1983       665       197      1347       612     \n",
       "sample_8  1856      1850       548       957       150       296       405     \n",
       "sample_9   994      1171       233      1656      1732       953      1651     \n",
       "sample_10  715       272       368       670       688      1743       724     \n",
       "sample_11  820      1374       934        65       842      1269       917     \n",
       "sample_12 1692       915       944       824       164       378      1439     \n",
       "sample_13  128       707       286       444      1893      1179        28     \n",
       "sample_14  805      1847       308      1536      1008       236      1631     \n",
       "sample_15 1585       997      1933      1135       651      1447      1598     \n",
       "sample_16  151       216       427       735       773      1001       684     \n",
       "sample_17  408      1303       449      1906      1965       752       381     \n",
       "sample_18  257      1859      1871        81      1696      1886      1774     \n",
       "sample_19  840      1240      1188       437      1125       256       960     \n",
       "sample_20 1902      1087      1112      1481       353       407       199     \n",
       "          variable8 variable9 variable10\n",
       "sample_1   821       459      1715      \n",
       "sample_2  1329      1565      1286      \n",
       "sample_3   751      1218       823      \n",
       "sample_4   582       646       711      \n",
       "sample_5     5       584       899      \n",
       "sample_6  1975       719      1776      \n",
       "sample_7   656       557       186      \n",
       "sample_8  1340      1088       672      \n",
       "sample_9   918        60      1676      \n",
       "sample_10 1956       897      1974      \n",
       "sample_11  581       324         1      \n",
       "sample_12 1298       270       389      \n",
       "sample_13  778      1172       916      \n",
       "sample_14  628      1943      1270      \n",
       "sample_15  402      1205       339      \n",
       "sample_16 1700      1639      1782      \n",
       "sample_17 1637      1894      1524      \n",
       "sample_18 1845       839       152      \n",
       "sample_19 1401       193      1552      \n",
       "sample_20   71       547       404      "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<ol class=list-inline>\n",
       "\t<li>20</li>\n",
       "\t<li>10</li>\n",
       "</ol>\n"
      ],
      "text/latex": [
       "\\begin{enumerate*}\n",
       "\\item 20\n",
       "\\item 10\n",
       "\\end{enumerate*}\n"
      ],
      "text/markdown": [
       "1. 20\n",
       "2. 10\n",
       "\n",
       "\n"
      ],
      "text/plain": [
       "[1] 20 10"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Dataset \n",
    "data <- matrix( sample(seq(1,2000),200), ncol = 10 )\n",
    "rownames(data) <- paste0(\"sample_\" , seq(1,20))\n",
    "colnames(data) <- paste0(\"variable\",seq(1,10))\n",
    "data\n",
    "dim(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nQmCC",
      "text/plain": [
       "Plot with title \"Cluster Dendrogram\""
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Euclidean distance\n",
    "# 计算欧式距离\n",
    "dist <- dist(data[ , c(4:8)] , diag=TRUE)\n",
    "\n",
    "# Hierarchical Clustering with hclust\n",
    "# 分层聚类\n",
    "hc <- hclust(dist)\n",
    "\n",
    "# Plot the result\n",
    "plot(hc)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于层次聚类主要有以下几个原则：\n",
    "+ 基于目标之间的距离。\n",
    "+ 寻找两个目标之间的最小距离。\n",
    "+ 将两个目标对象聚合在一个簇中。\n",
    "+ 用目标群的中心进行计算。直到只有一个簇包含每个点。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.2 放大分支 Zoom on a group\n",
    "我们可以放大树的特定部分。使用[[ ]]运算符选择感兴趣的枝条。例如：\n",
    "```\n",
    "# 将上面的树形图存入dhc\n",
    "dhc <- as.dendrogram(hc)\n",
    "dhc[[1]] 表示从上到下第一层，其中从左往右第一个枝条\n",
    "dhc[[2]][[2]] 表示从上到下第二层，其中从左往右第二个枝条\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面代码，所示展示2.1节所画层次树第一层右边部分分支"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "'dendrogram' with 2 branches and 14 members total, at height 2795.492 \n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAgAElEQVR4nO2d22LiOgxFHS4ppVz+/28HAmUCOCR2rHjvaq+HMzBHSLKSVSCY\nTjgLIWYTajcgxF9AIglRAIkkRAEkkhAFkEhCFEAiCVEAiSREASSSEAWQSEIUQCIJUQCJJEQB\nJJIQBZBIQhRAIglRAIkkRAEkEjbbT//zqwmhH3C7HcLkg2oT6hJNB5mf5tPx+bqc3D2RfoMl\nUg00HWQ+n72rEA6RYIlUA00Hmc9n78v/lUg1cTud8KC7u99eXybtf//v091rzG4VVj/n864J\n65/nRG+h+/Xl/uEp5ntz+R+r9vhc/5o0bI/vIZdbx1Vo+/0NFXtdz/2vf9b/M5/aJjRPtc/n\n47YJq90jQz/kdQnPoffW3kd2vNxbR8Je1vVhkNxIpG4C6/vtze1/Pt+93Lj9xfF2bj+dAG+h\n9/P/EInpP/L6kO7vmuNbyPXU+635JFK/2Mv/fRKp7WU+Nm+1zz+3v1rfH/8U8rKEl9B7a28L\nHwp7XdfwIMmRSNcJbB53utPi5e7jXtM/dW4Mhfavpu0u58/pfG6fHvk/cvUWcvv77xdVXoq9\n/N//d196aH6b73Xd/I95Cxl4eHgYcm3tbeEDYbF1xQfJjluRblyO8OW1yf5yUHen8+l6Gez9\nbveD9HQ9J8Lq0P3x//GR0Oby5/Yp6PKz+fHK5sE18vITed90D3wOuRV8fUSsWH8tv3fvmdub\nGLdT+bTtzv4737cur7XDW8jzEl5CH6299HIP+34Ni60rOkh6/tJa0rl5dD1pdr/3t293r8f/\n5+mP/wkiodeEp+hJ8ipSd2bvn568Hifc/v0RsWKx9M89XJ457k7+//m/ueffx0LeHt4PfbT2\n0stv2PdL2Nu6hgZJz19aSzJ3j66HtDuTzsfu4L7c7b2B7v1xYyD07SQ5frfr8PrI3xur15BH\n1uc0Q8VeMj7/+f8lV/MWGQ15e/jTY8JDuqdemoGwt3UNDZKev7SWVC4vLrrLT71D+itS/+6I\nSLHQl5Pke/V7pkYeeX8J1Q95PXtHir387yGRwnuiWMioSB9H9jqk2Lok0t9i/+vR04/X5u3u\n1Gek9x/nd66vd1bb3SH+yO5vn0OGRYoWOz8HP//ZRE7Xl/zNa5Xenx9E6vcSeUaKLF0i/UX+\ne3R9hf/ygj/2XiR2/AdCn4NW/19B/v/LcH/kvntn8hwyINJQsfNz8POfm5d3K+fz2zua55D4\nw79fVv8+smhYdF0S6S/R82jCVbvz2x/RR8ZFut95e0a6Xm24Xg7bvYY8iXR6PGTCVbvTWw/f\nt2t437cPf27snq+xPYc8P3z3fjku1svvVbvwEhZdl0T6Szy9L3h8bHi7gvZy99Pxj4c+B607\nZx9XkF/rN28hj8Dr/fYpUazY+Tn4pYfHJzw/z6H/V/8cMvTwl9W/9DIQFl2XRPpLPB/4df+k\neL378fhHQ5+Dfn6N6Z/M4Wn/wXPI49HXD3P+P5EMFTs/B7/0sL8/pifkb7lNLOTl4S+h/2s+\n93JPsX4Ji65LIv0lnkU677fN81675m1P28Dxj4W+BB0u53izPRz7n+VcI75XoWlP7yH/H715\n/sJRvNj5Ofi1h1N7eaeyeX6j9Lwz7ink9eFvm+iivXQLWO/fwmLrkkiiHH/rNPrl9LwVyRF/\n8WhS8LdECrd9Gof139pAl8BfOppU/C2R/l96eL/Y7oO/dDSp+FsiHR9X7drx4D/JXzqaVPwt\nkc6nr+t1vWbr9PlIIglRBIkkRAEkkhAFkEhCFEAiCVEAiSREASSSEAWQSEIUQCIJUQCJJEQB\nJJIQBZBIQhRAIglRAIkkRAEkkhAFkEhCFEAiCVEAiSREASSSEAWQSEIUQCIJUQCJJEQBJJIQ\nBZBIQhRAIglRAIkkRAEkkhAFkEhCFEAiCVEAiSREASSSEAWQSEIUQCIJUQCJJEQBJJIQBZBI\nMYIoQO2juCi+VjsVTaUAvoboa7VT0VQK4GuIvlY7FU2lAL6G6Gu1U9FUCuBriL5WOxVNpQC+\nhuhrtVPRVArga4i+VjsVTaUAvoboa7VT0VQK4GuIvlY7FU2lAL6G6Gu1U9FUCuBriL5WOxVN\npQC+huhrtVPRVArga4i+VjsVTaUAvoboa7VT0VQK4GuIvlY7FU2lAL6G6Gu1U9FUCuBriL5W\nOxVNpQC+huhrtVPRVArga4i+VjsVTaUAvoboa7VT0VQK4GuIvlY7FU2lAL6G6Gu1U9FUCuBr\niL5WOxVNpQC+huhrtVPRVArga4i+VjsVTaUAvoboa7VT0VQK4GuIvlY7FU2lAL6G6Gu1U9FU\nCuBriL5WOxVNpQC+huhrtVPRVArga4i+VjsVTaUAvoboa7VT0VQK4GuIvlY7FU2lAL6G6Gu1\nU9FUCuBriL5WOxVNpQC+huhrtVPRVArga4i+VjsVTaUAvoboa7VT0VQK4GuIvlY7FU2lAL6G\n6Gu1U9FUCuBriL5WOxVNpQC+huhrtVPRVArga4i+VjsVTaUAvoboa7VT0VQK4GuIvlY7FU2l\nAL6G6Gu1U9FUCuBriLmr/fnahCub9qdoPxj4OgeM8DXEvNWeVuE/68ItAeDrHDDC1xDzVtuG\n5vvQ3Trum9CWbAgCX+eAEb6GmLfaJhwetw+hKdUMDL7OASN8DTFvtSEM3fkb/L0VVcDXEPWM\nFMPXOWCEryFmv0faH7tbeo8kBvA1xMzVrntX7Vansi0B4OscMMLXELM/R2q7z5GazZc+RxJR\nfA3R12qnoqkUwNcQfa12KppKAXwNUVuEYvg6B4zwNURtEYrh6xwwwtcQtUUohq9zwAhfQ9QH\nsjF8nQNG+BqitgjF+HsrqoCvIeoZKYavc8AIX0PUFqEYvs4BI3wNUVuEYvg6B4zwNURtEYrh\n6xwwwtcQfa12KppKAXwN0WS1oY9FAWsom0bD1xBnrXa3CmGzNyxQC8qm0fA1xDmfI92vOHy+\naEc5Tsqm0fA1xBkitaE9nc/HNuzKF6gMZdNo+BriDJGa0F33PoVV+QKVoWwaDV9DnCHS73WE\nz9cTKMdJ2TQavoY4Q6Ttr0gftwhRjpOyaTR8DTFXpM3Xbh++LzdP7eerDZTjpGwaDV9DzBXp\n8RlRCM3HLUKU46RsGg1fQ8xc7eGw22023SWH9vNWO8pxUjaNhq8hmq+WcpyUTaPha4gSKQZl\n02j4GmLmak/bENb3zUG6/C1i+Bpi5m8Ram6/i+uWQiKJCL6GmPsN2d3Fpl3T/SYuiSRi+Bpi\n7u9s6P44NqujRBJxfA1x3m8ROq3XEknE8TXEvNWuwu+HR6u1RBJRfA0xb7W7sL3fOoa1RBIx\nfA0xc7Xtw579yLfJKcdJ2TQavoaYu9rD5vfWcSuRRARfQ9TOhhiUTaPha4gSKQZl02j4GqJE\nikHZNBq+hiiRYlA2jYavIUqkGJRNo+FriBIpBmXTaPgaokSKQdk0Gr6GKJFiUDaNhq8hSqQY\nlE2j4WuIEikGZdNo+BqiRIpB2TQavoYokWJQNo2GryFKpBiUTaPha4gSKQZl02j4GqJEikHZ\nNBq+hiiRYlA2jYavIUqkGJRNo+FriBIpBmXTaPgaokSKQdk0Gr6GKJFiUDaNhq8hSqQYlE2j\n4WuIEikGZdNo+BqiRIpB2TQavoYokWJQNo2GryFKpBiUTaPha4gSKQZl02j4GqJEikHZNBq+\nhiiRYlA2jYavIUqkGJRNo+FriBIpBmXTaPgaokSKQdk0Gr6GKJFiUDaNhq8hSqQYlE2j4WuI\nEikGZdNo+BqiRIpB2TQavoYokWJQNo2GryFKpBiUTaPha4gSKQZl02j4GqJEikHZNBq+hiiR\nYlA2jYavIUqkGJRNo+FriBIpBmXTaPgaokSKQdk0Gr6GKJFiUDaNhq8hSqQYlE2j4WuIEikG\nZdNo+BqiRIpB2TQavoYokWJQNo2GryFKpBiUTS9CsKH2suYjkWJQNr0INpP5A/OWSDEom14E\niTSARIpB2fQiSKQBJFIMyqYXQSINIJFiUDa9CBJpAIkUg7LpRZBIA0ikGJRNL4JEGkAixaBs\nehEk0gASKQZl04sgkQaQSDEom14EiTSARIpB2fQiSKQBJFIMyqYXQSINIJFiUDa9CBJpAIkU\ng7LpRZBIA0ikGJRNL4JEGkAixaBsehEk0gASKQZl04sgkQaQSDEom14EiTSARIpB2fQiSKQB\nJFIMyqYXQSINIJFiUDa9CBJpAEaRjH6TzaKUn8oySKQBKEUqn3JpaJcgkQaQSFWgXYJEGkAi\nVYF2CRJpgNwl/Hxtutf6m/bHpsCyKZeGdgkSaYC8JZxWvffNa4MCS6dcGtolSKQB8pbQhub7\n0N067pvQli/wEbdjB0AiDZC3hCYcHrcPoSlf4CNuxw6ARBogbwlPn4N8/lBEIsWgXYJEGkDP\nSFWgXYJEGiD7PdL+2N3Se6QsaJcgkQbIXMK6d9VudTIosHDKpaFdgkQaIPtzpLb7HKnZfOlz\npAxolyCRBtDOhirQLkEiDSCRqkC7BIk0gLYIVYF2CRJpAG0RqgLtEiTSANoiVAXaJUikAfSB\nbBVolyCRBtAWoSrQLkEiDaBnpCrQLkEiDaAtQlWgXYJEGkBbhKpAuwSJNIC2CFWBdgkSaQDt\nbKgC7RIk0gAmSzD+VYgaez0k0gDaIlQF2iVIpAG0RagKtEuQSANoi1AVaJcgkQbQB7JVoF2C\nRBpAW4SqQLsEiTSAnpGqQLsEiTSAtghVgXYJEmkAbRGqAu0SJNIA2iJUBdolSKQBtEWoCrRL\nkEgDSKQq0C5BIg2QuYTTNoT1/p5Cl7+ToV2CRBogc4tQc9tod0shkZKhXYJEGiD38vfuYtOu\n6bbZSaR0aJcgkQbI/UC2++PYrI4SKQfaJUikAeZtETqt1xIpB9olSKQB8pawCr8fwq7WEikD\n2iVIpAHylrAL2/utY1hLpHRolyCRBshcQvuwZz/ybXKJFIN2CRJpgNwlHDa/t45biZQM7RIk\n0gDa2VAF2iVIpAEkUhVolyCRBpBIVaBdgkQaQCJVgXYJEmkAiVQF2iVIpAEkUhVolyCRBpBI\nVaBdgkQaQCJVgXYJEmkAiVQF2iVIpAEkUhVolyCRBpBIVaBdgkQaQCJVgXYJEmkAiVQF2iVI\npAEkUhVolyCRBpBIVaBdgkQaQCJVgXYJEmkAiVQF2iVIpAEkUhVolyCRBpBIVaBdgkQaQCJV\ngXYJEmkAiVQF2iVIpAEkUhVolyCRBpBIVaBdgkQaQCJVgXYJEmkAiVQF2iVIpAEkUhVolyCR\nBpBIVaBdgkQaQCJVgXYJEmkAiVQF2iVIpAEkUhVolyCRBpBIVaBdgkQaQCJVgXYJEmkAiVQF\n2iVIpAEkUnJ1HGqsnijrokgkrup9JBIQEomreh+JBIRE4qreRyIBIZG4qveRSEBIJK7qfSQS\nEBKJq3ofiQSEROKq3kciASGRuKr3kUhASCSu6n0kEhASiat6H4kEhETiqt5HIgEhkbiq95FI\nQEgkrup9JBIQEomreh+JBIRE4qreRyIBIZG4qveRSEBIJK7qfSQSEBKJq3ofiQSEROKq3kci\nASGRuKr3kUhASCSu6n0kEhASiat6H4kEhETiqt5HIgEhkbiq95FIQEgkrup9JBIQEomreh+J\nBIRE4qreRyIBIZG4qveRSEBIJK7qfSQSEBKJq3ofiQSEROKq3kciASGRuKr3kUhASCSu6n0k\nEhASiat6H4kEhETiqt5HIgEhkbiq95FIQEgkrup9JBIQEomreh+JBIRE4qreRyIBkbuEn69N\nuLJpf2wKLJuSpnofiQRE3hJOq/CftUGBpVPSVO8jkYDIW0Ibmu9Dd+u4b0JbvsBHJNINiQRE\n3hKacHjcPoSmfIGPSKQbEgmIvCWEMHSnUIHP1cunpKneRyIBoWckrup9JBIQ2e+R9sfult4j\n1UMiAZG5hHXvqt3qZFBg4ZQ01ftIJCCyP0dqu8+Rms2XPkeqhUQCQjsbuKr3kUhASCSu6n0k\nEhDaIsRVvY9EAkJbhLiq95FIQGiLEFf1PhIJCH0gy1W9j0QCQluEuKr3kUhA6BmJq3ofiQSE\ntghxVe8jkYDQFiGu6n0kEhDaIsRVvY9EAkI7G7iq95FIQJgsIfQxSF8+JU31PhIJiFlL2K1C\n2OwNCyyWkqZ6H4kExJzPke5XHD5etJNIdkgkIGaI1Ib2dD4f27ArX+Bz9fIpaar3kUhAzBCp\nCd1171NYlS/wuXr5lDTV+0gkIGaI9HsdQVuEKiGRgJgh0vZXJG0RqoNEAiJXpM3Xbh++LzdP\nrbYIVUIiAZEr0uMzohAabRGqg0QCInMJh8Nut9l0lxzajx5JJDskEhDaIoRUPZhSpMMSSRbK\nuigSCam66cokkiUSCam6RKJFIiFVl0i0SCSk6hKJlnmXvye8i5VIILklkil5S9hJJLrcEsmU\n3M+Rms+/X3V2gYVTglSXSLTkLuEw8jWk2QWWTQlSXSLRkr2EXe9X25kUWDQlSHWJRIuu2iFV\nl0i0SCSk6hKJFomEVF0i0SKRkKpLJFokElJ1iUSLREKqLpFokUhI1SUSLRIJqbpEokUiIVWX\nSLRIJKTqEokWiYRUXSLRIpGQqkskWiQSUnWJRItEQqoukWiRSEjVJRItEgmpukSiRSIhVZdI\ntEgkpOoSiRaJhFRdItEikZCqSyRaJBJSdYlEi0RCqi6RaJFISNUlEi0SCan6XxMJ8t9KswFO\nJPiBs+auIlKJkob5CoInUo2iHnJLJFMkkpfcEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfc\nEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfcEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfc\nEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfcEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfc\nEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfcEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfc\nEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfcEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfc\nEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfcEskUieQlt0QyRSJ5yS2RTJFIXnJLJFMkkpfc\nEskUieQlt0QyRSJ5yS2RTJFIXnJLJFNyW/v52oQrm/anbAGJBJ1cIg2Q19ppFf6zLlpAIkEn\nl0gD5LXWhub70N067pvQliwgkaCTS6QB8lprwuFx+xCakgUkEnRyiTRAXmshDN2ZXUAiQSeX\nSAPoGclLbolkSvZ7pP2xu6X3SCy5JZIpma2te1ftVqeSBSQSdHKJNED250ht9zlSs/nS50gc\nuSWSKdrZ4CW3RDJFIv293CENww4l0ijaIoSbG0cNiTSCtggh58ZRQyKNoC1CyLlx1JBII+gD\nWeTcOGpIpLFHaYsQcG4cNSTSCHpGQs6No4ZEGkFbhJBz46ghkcbQFiHg3DhqSKRRtEUINzeO\nGhKpXgGJtHAWnOjl8xXEpLX8HSgSafEsONHL5yuItgj9vdw4akikEbRFCDk3jhoSaQRtEULO\njaOGRBpBH8jOTWL4TQcgNRKji5BUshzaIlQlt+kPdiA1DKMtkyxWV89IiyaRSAsnWayutggt\nmkQiLZxkubraIrRkEom0cJIF62qL0IJJJNLCSRDrSqT5SSTSwkkQ60qk+Ukk0sJJEOtKpPlJ\nJNLCSRDrSqT5SSTSwkkQ69qKVOFTb4mEEW2ZZLG6CeensUiG0ThJJNLCSRaru5NISyaRSAsn\nWa7uofn85Yn8Aj6OlESaHW2ZZMG6h88bg/IL+DhSEml2tGWSJevuevtWSxbwcaQk0uxoyySI\ndSXS/CQSaeEkiHUl0vwkEmnhJIh1JdL8JBJp4SSIdSXS/CQSaeEkiHUl0vwkEmnhJIh1JdL8\nJBJp4SSIdSXS/CQSaeEkiHUl0vwkEmnhJIh1JdL8JBJp4SSIdSXS/CQSaeEkiHUl0vwkEmnh\nJIh1JdL8JBJp4SSIdSXS/CQSaeEkiHUl0vwkEmnhJIh1JdL8JBJp4SSIdSXS/CQSaeEkiHUl\n0vwkEmnhJIh1JdL8JBJp4SSIdSXS/CQSaeEkiHUl0vwkEmnhJIh1JdL8JBJp4SSIdSXS/CQS\naeEkiHUl0vwkEmnhJIh1JdL8JBJp4SSIdSXS/CQSaeEkiHUl0vwkEmnhJIh1JdL8JBJp4SSI\ndSXS/CQSaeEkiHV5RbL81wAl0uxoyySIdYlFIo0GakUi1SuAc6RYo4FakUj1CuAcKdZooFYk\nUr0COEeKNRqoFYlUrwDOkWKNBmpFItUrgHOkWKOBWpFI9QrgHCnWaKBWJFK9AjhHijUaqBWJ\nVK8AzpFijQZqRSLVK4BzpFijgVqRSPUK4Bwp1migViRSvQI4R4o1GqgViVSvAM6RYo0GakUi\n1SuAc6RYo4FakUj1CuAcKdZooFYkUr0COEeKNRqoFYlUrwDOkWKNBmpFItUrgHOkWKOBWpFI\n9QrgHCnWaKBWJFK9AjhHijUaqBWJVK8AzpFijQZqRSLVK4BzpFijgVqRSPUK4Bwp1migViRS\nvQI4R4o1GqgViVSvAM6RYo0GakUi1SuAc6RYo4FakUj1CuAcKdZooFYkUr0COEeKNRqoFYlU\nrwDOkWKNBmpFItUrgHOkWKOBWpFI9QrgHCnWaKBWJFK9AjhHijUaqBWJVK8AzpFijQZqRSLV\nK4BzpFijgVqRSPUK4Bwp1migViRSvQI4R4o1GqgViVSvAM6RYo0GakUi1SuAc6RYo4FakUj1\nCuAcKdZooFYkUr0COEeKNRqoFYlUrwDOkWKNBmpFItUrgHOkWKOBWpFI9QrgHCnWaKBWJFK9\nAjhHijUaqBWJVK8AzpFijQZqRSLVK4BzpFijgVqRSPUK4Bwp1migViRSvQI4R4o1GqgViVSv\nAM6RYo0GakUi1SuAc6RYo4FakUj1CuAcKdZooFYk0ig/X5twZdP+lC2Ac6RYo4FakUgjnFbh\nP+uiBXCOFGs0UCsSaYQ2NN+H7tZx34S2ZAGcI8UaDdSKRBqhCYfH7UNoShbAOVKs0UCtSKSx\nR4WhO7ML4Bwp1migViTSCHpGAo4GakUijXB5j7Q/drf0HgkuGqgViTTGunfVbnUqWQDnSLFG\nA7UikUb5abvPkZrNlz5HAosGakUi1SuAc6RYo4FakUj1CuAcKdZooFYk0ijaIgQbDdSKRBpB\nW4SAo4FakUgjaIsQcDRQKxJpBH0gCxwN1IpEGntUGLpz/5sepg0peuHkONGWSRarq2ck4Gig\nViTSCNoiBBwN1IpEGkNbhHCjgVqRSKNoixBsNFArEqleAZwjxRoN1IppdBpJuTOAKwB0pEij\ngVphjc5gVoHdKoTNvmwBnGmyRgO1whqdwZzPke5XHD5etJNIi0cDtcIancEMkdrQns7nYxt2\nJQvgTJM1GqgV1ugMZojUhO669ymsShbAmSZrNFArrNEZzBDp90qIfosQVjRQK6zRGcwQafsr\nkrYIQUUDtcIanUGuSJuv3T58X26eWm0RwooGaoU1OoNckR6fcoXQaIsQVDRQK6zRGWQWOBx2\nu82mu+TQfvRIIi0eDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa61t\nh5AAAAsoSURBVHQGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpska\nDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QG\ncAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGcAVwpskaDdQKa3QGuQV+vjbh\nyqb9KVsAZ5qs0UCtsEZnkFfgtAr/WRctgDNN1migVlijM8gr0Ibm+9DdOu6b0JYsgDNN1mig\nVlijM8gr0ITD4/YhNCUL4EyTNRqoFdboDPIKhDB05/43PUwbUvTCyX1EZ2D+jCSEB7LfI+2P\n3a3R90hCeCDzKW/de+22OpVtSQg+sj9HarvPkZrN18jnSEJ4wPxNmBAekEhCFEAiCVEAiSRE\nASSSEAWQSEIUQCIJUQCJJEQBJJIQBUATabcKYbMfDQuN5YaKyV//vXJqr5t2vy59r79LR58P\n7W0z1mozJfq4Dc1XN8Nmwv7H0/bSxH3U45v0LXPf2TVhtZsYm4pl7g4YkW7jvu/hGz1U17Pc\naotfwtd/LxybS+enxiT6/NXrZDPeeJd39zUt+b2LW9rRk90y9/mwCc3uPDF3Ipa5+2CJ1Ib2\nosexDWM/PEK47jq3USnh678Xtlejt2F77H5ol43ed4E/6835cHkmGH2ebq8J2yZsT5cnvtHk\n3ZBPu6Y7u0ZPdsvch9sPz2vu42b00KdhmfsJLJGa0LlxCqvx6NPl5dd2/EXgLTrlq4ZpX7YK\n15bDb99lo9e3wEO4vKb6GX9KasKjxPXF76Toy3Pk6jjhZLfM3f1EaW9Jpxz6lIOZlnsGWCL9\nzmV0Pl3A4fpOZrM7jD4x7ZJmP/L131h0k9R3WvT5fuKOv0IKofegyclP6/XkaNPcE18I5hzM\nyS8y88ESads/c0ajr+/FmynTPB+ahJfHac9I22v01+0hp9FX4WnRjyfo/g+ZT+HnR9z4090q\n/P4AWq2nPyNZ5L4FfN9ed41/3zrpYCbmzgdIpM3Xbh+uF6cmvAj/f3AOu81qfBGHhK/xpn39\n96Jaezhvmosb+/H3MWnRbVj/nK+v7bfXy2Db8cZv72Ou7x3HR7h7JDyG9eT3SBa5t9d3MDdO\n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\nJd7ErMx6lGwAAAAASUVORK5CYII=",
      "text/plain": [
       "Plot with title \"zoom on a part of the dendrogram\""
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# store the dedrogram in an object\n",
    "# 保存聚类结果为dhc变量\n",
    "dhc <- as.dendrogram(hc)\n",
    "\n",
    "# set the margin\n",
    "par(mar=c(4,4,2,2))\n",
    "# 打印会告诉你分支情况\n",
    "print(dhc[[2]])\n",
    "# Plot the Second group\n",
    "# 绘图\n",
    "plot(dhc[[2]] , main= \"zoom on a part of the dendrogram\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面代码，所示展示2.1节所画层次树第一层右边部分的第二个分支"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "'dendrogram' with 2 branches and 9 members total, at height 2107.407 \n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAgAElEQVR4nO2d60Li2hKEE0BE5PL+bzuAikDQlUv1stLzfT/O1n2SrqqGGhWW\ns5sjAEym+WsDABmgSAACKBKAAIoEIIAiAQigSAACKBKAAIoEIIAiAQigSAACKBKAAIoEIIAi\nAQigSAACKBKAAIrkzctv/+dr2zS3F3x83DS9H9SYS/9L2I4z7+1vj8/r6cl9U6SviynSX8B2\nnPn92btomt2TiynSX8B2nPn92fvw/1Kkv+S/3U5z5fLp9uX8bdL26/+9+/R8zWbRLN6Px03b\nLN/vB3Uu3S5Pn+/urnlbnf6PxXp/r38e2rzsu5ecPtovmvWtv5/EHvN8/uv35ffkw7pt2jvt\n43H/0jaLzXXC7SWPEe4v/bTWXdn+9NnyyWUPuX5Z5LyhSJcNLD8/Xn38n/efnj74+Bf7j+f2\n3ROgc+nn83/35JrbO8+3XP5du+9ccn7qfWneFelW7OH/vSvS+mbyvu1oH98//tXy8/67Sx4i\nPFz6aa0T/KfLHnP9vMiZQ5HOG1hdP7k8LR4+vX7W3j51Pvjp0ttX0zan58/heFzf3fl95aJz\nyce/f3uoyoPYw//7/emDh/bL/I3r9vuaziU/3N5cG3K21gn+w2XPcj1f5Nz5b4v0wekRPn1v\nsj09qJvD8XB+Gaz76eUP0sP5OdEsdpd/fN//5NL29M+Xu4tOfzZfv7O5cr7y9Cfytr3ceH/J\nh+DjHc/EbrN8ffo5ef1RjI+n8uHl8uz/5O3D5Vm76VxyH+Hh0qu1By+fl709XvYs19NFzp5M\nWYbz0aPzk2bz9flL59Pz4/9+94/vAU8uPQ88PH2SPBbp8sze3n3xuj7htt07nok9G3/v4fSV\n47OT33/+rz7nb59d0rn99tKrtQcvX5e9PVzWyfXTImdPpiyD+ezR+SG9PJOO+8uD+/DpzQ/Q\nN//44IdLO0+S/dt62Tze+fXB4vGS69T7MT+JPUy8/+f3t1xt58qnl3Ruv7unuZbuzkv7w2Wd\nXD8tcvZkyjKU0zcXl5efbh7SryLdfloo0rNLH54kb4uvZ+qTOz+/hbq95PHZWxB7+L9/KlLT\nHfTskmKRfl3Z45Ke5aJIudh+9ejuj9e282nfr0jdP84/OX+/s3jZ7J7fefm395f8XKSnYsf7\ni+//2T55uj7Mbx9Vbv75S5FuvTz5ivQkOkXKyHePzt/hP3zD/+xnkWeP/w+X3l+0+P4O8vtf\nNp93bi8/mdxf8kORfhI73l98/8/Vw08rx2PnJ5r7S57f/vaQvruyp5c9zUWRMnHTox6v2h07\n/3h65/MifX7S+Yp0frXh/HLY5vGSuyIdrrf0eNXu0PHw9vEa3tvHmz8fbO5fY7u/5P72Tffl\nuGdevl61ax4ue5qLImXi7ueC69uGH6+gPXz62+P//NL7i5aXzl5fQX7UbzuXXC88f76+G/RM\n7Hh/8YOH6zs87/eXfqe/v+Sn2x/SP3j54bKnuShSJu4f+OXtk+Lx018f/6eX3l/0/tWY2ydz\nc3f+4P6S693nN3O+v5D8JHa8v/jBw/bznptCfsmtnl3ycPvDpd+a914+RywfLnuaiyJl4r5I\nx+1Le3/Wru2cafvh8X926cNFu9NzvH3Z7W/fyzlf8bZo2vWhe8n33av7Xzh6Lna8v/jRw2F9\n+klldf+D0v3JuLtLHm/vHKJ76uUSYLntXPYsF0UCHbmeRl8c7o8i/UdkfDRnQa4iNR/nNHbL\nXAfoBpDp0ZwVuYr0/dJD98X2/4NMj+asyFWk/fVVu3X54pRkejRnRa4iHQ+v59f12pf/9OsR\nRQKQQJEABFAkAAEUCUAARQIQQJEABFAkAAEUCUAARQIQQJEABFAkAAEUCUAARQIQQJEABFAk\nAAEUCUAARQIQQJEABFAkAAEUCUAARQIQQJEABFAkAAEUCUAARQIQQJEABFAkAAEUCUAARQIQ\nQJEABFAkAAEUCUAARQIQQJEABFAkAAEZi9TAMP76ActAxiVmzBQJ+xKQcYkZM0XCvgRkXGLG\nTJGwLwEZl5gxUyTsS0DGJWbMFAn7EpBxiRkzRcK+BGRcYsZMkbAvARmXmDFTJOxLQMYlZswU\nCfsSkHGJGTNFwr4EZFxixkyRsC8BY5f4/rq6HNNard+lfhTwxBgG+xIwbomHxc2Rx6XY0mR4\nYgyDfQkYt8R1077tLh/tt22zVhoSwBNjGOxLwLglts3u+vGuaVVmRPDEGAb7EjBuiXe/wmL3\n+yxuftxhXwL4igTsS8Don5G2+8tH/Iw0f9iXgJFLXN68arc4aC1NhifGMNiXgNHvI60v7yO1\nq1feR5o77EtAxiVmzBQJ+xKQcYkZM0XCvgRwRAjYlwCOCAH7EsARIWBfAnhDFtiXAI4IAfsS\nwFckYF8COCIE7EsAR4SAfQngiBCwLwEZl5gxUyTsS0DIEv/4v2LFE2MY7EtA+BEhimQP+xIQ\nfkSIItnDvgSEHxGiSPawLwHhb8hSJHvYl4DwI0IUyR72JYCvSMC+BIQfEaJI9rAvAeFHhCiS\nPexLQPgRIYpkD/sSEL5EimQP+xJAkYB9CRi5xMNL0yy3nyN4+XvesC8BI48ItR8H7T5GUKR5\nw74EjH35e3Nq06a9HLOjSDOHfQkY+4bs5R/7drGnSLOHfQmYdkTosFxSpNnDvgSMW+Ki+XoT\ndrGkSHOHfQkYt8RN8/L50b5ZUqSZw74EjFzi+tqebeG3ySmSPexLwNgl7lZfH+1fKNK8YV8C\nONkA7EsARQL2JYAiAfsSQJGAfQmgSMC+BFAkYF8CKBKwLwEUCdiXAIoE7EsARQL2JYAiAfsS\nQJGAfQmgSMC+BFAkYF8CKBKwLwEUCdiXAIoE7EsARQL2JYAiAfsSQJGAfQmgSMC+BFAkYF8C\nKBKwLwEUCdiXAIoE7EsARQL2JYAiAfsSQJGAfQmgSMC+BFAkYF8CKBKwLwEUCdiXAIoE7EsA\nRQL2JYAiAfsSQJGAfQmgSMC+BFAkYF8CKBKwLwEUCdiXAIoE7EsARQL2JYAiAfsSQJGAfQmg\nSMC+BFAkYF8CKBKwLwEUCdiXAIoE7EsARQL2JYAiAfsSQJGAfQmgSKY0SfnrvUZBkUxJEaJL\n0lgUyZYUIbokjUWRbEkRokvSWBTJlhQhuiSNRZFsSRGiS9JYFMmWFCG6JI1FkWxJEaJL0lgU\nyZYUIbokjUWRbEkRokvSWBTJlhQhuiSNRZFsSRGiS9JYFMmWFCG6JI1FkWxJEaJL0lgUyZYU\nIbokjUWRbEkRokvSWBTJlhQhuiSNRZFsSRGiS9JYFMmWFCG6JI1FkWxJEaJL0lgUyZYUIbok\njUWRbEkRokvSWBTJlhQhuiSNRZFsSRGiS9JYFMmWFCG6JI1FkWxJEaJL0lgUyZYUIbokjUWR\nbEkRokvSWBTJlhQhuiSNRZFsSRGiS9JYFMmWFCG6JI1FkWxJEaJL0lgUyZYUIbokjUWRbEkR\nokvSWBTJlhQhuiSNRZFsSRGiS9JYFMmWFCG6JI1FkWxJEaJL0lgUyZYUIbokjUWRbEkRokvS\nWBTJlhQhuiSNRZFsSRGiS9JYFMmWFCG6JI1FkWxJEaJL0lgUyZYUIbokjUWRbEkRokvSWBTJ\nlhQhuiSNRZFsSRGiS9JYFMmWFCG6JI1FkWxJEaJL0lgUyZYUIbokjUWRbEkRokvSWBTJlhQh\nuiSNRZFsSRGiS9JYFMmWFCG6JI1FkWxJEaJL0lgUyZYUIbokjUWRbEkRokvSWBTJlhQhuiSN\nNT7Y++uqObNav8cITCDFg5UiRJekscYGOyyab5YBApNI8WClCNElaayxwdZN+7a7fLTfts1a\nLzCJFA9WihBdksYaG6xtdtePd02rF5hEigcrRYguSWONDdY0P30iEphEigcrRYguSWPxFcmW\nFCG6JI014Wek7f7yET8jBZEiRJeksUYHW968arc4BAhMIcWDlSJEl6SxJryPtL68j9SuXnkf\nKYQUIbokjcXJBltShOiSNBZFsiVFiC5JY3FEyJYUIbokjcURIVtShOiSNBZHhGxJEaJL0li8\nIWtLihBdksbiiJAtKUJ0SRqLr0i2pAjRJWksjgjZkiJEl6SxOCJkS4oQXZLG4oiQLSlCdEka\ni5MNtqQI0SVprKBgzS0RAgX5+pJ6UoTokjTWxGCbRdOstoEC40jxYKUI0SVprGnvI32+4vDr\ni3YUaSQpQnRJGmtSkdbN+nA87tfNRi8wiRQPVooQXZLGmlSktrm87n1oFnqBSaR4sFKE6JI0\n1qQifb2OwBGhCFKE6JI01qQivXwViSNCAaQI0SVprPFFWr1uts3b6cPDmiNCEaQI0SVprPFF\nur5H1DQtR4QCSBGiS9JYo4PtdpvNanV5yWH9a48o0khShOiSNBZHhGxJEaJL0lgUyZYUIbok\njUWRbEkRokvSWBTJFrMQjRl/vY8OFMkUsxDYKTDt5e8efzxQpHGYhcBOgXGONhQpGrMQ2Ckw\n9n2k9ve/X3WywBT8tjwCsxDYKTDW0a7wa0iTBSbgt+URmIXAToHRjjY3f7VdiMB4/LY8ArMQ\n2CnAq3ammIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXA\nTgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwU\noEimmIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgGK\nZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEim\nmIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgGKZIpZ\nCOwUoEimmIXATgGKZIpZCOwUoEimmIXATgHvIjUVUQUWYeYHOwXMi6RyYSXVCzM/2ClAkepL\n9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84Od\nAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/V\nCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YK\nUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQv\nzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClA\nkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w\n84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBF\nqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLM\nD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSp\nvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/VCzM/\n2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6\nUr0w84OdAhSpvlQvzPxgpwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxg\npwBFqi/VCzM/2ClAkepL9cLMD3YKUKT6Ur0w84OdAhSpvlQvzPxgp8BYR++vq+bMav0eIzD9\nZlupXpj5wU6BcY4Oi+abZYCA4mZbqV6Y+cFOgXGO1k37trt8tN+2zVovoLjZVqoXZn6wU2Cc\no7bZXT/eNa1eQHGzrVQvzPxgp8A4R03z0yciAcXNtlK9MPODnQJ8Raov1QszP9gpMPpnpO3+\n8hE/IwVh5gc7BUY6Wt68arc4BAgIbraV6oWZn5qPhIp6lo8T3kdaX95HalevvI8UgpmfGT4S\n8yhSHYEZPnwqzPzM8JGgSKKbbaV6YeZnho/EPIrEEaFgzPzM8JGYQ5E4IhSOmZ8ZPhJzKBJH\nhMIx8zPDR2IOReIN2XDM/MzwkZhDkTgiFI6Znxk+EnMoEl+RwjHzM8NHYg5F4ohQOGZ+ZvhI\nzKFIHBEKx8zPDB+JWRSJI0LRmPmZ4SMxjyLVEZjhw6fCzM8MH4kERZKdwZ3hw6fCzM8MH4l5\nFIkjQsGY+ZnhIzGHInFEKBwzPzN8JOZQJI4IhWPmZ4aPxByKxBuy4Zj5meEjMYcicUQonJrR\nvX63+38qEl+RwplhdIo0GI4IhTPD6BRpOBwRimaG0SnSCDgiFMwMo1MkW4EZPptUzDA6RbIV\nmOGzScUMo1MkW4EZPptUzDA6RbIVmOGzScUMo1MkW4EZPptUzDA6RRp+V/93tCnSOGYYnSIN\nZkORoplhdIo0nF37+y9PTBYQ3Gwr1YsZRqdII9j9fjBousD0m22lejHD6BRpDJubc6shApNv\nvp1jdby5n+X5SVEkWwGznVKkGnPM7LioUSR7raRbpkiim/VzKFKNOWZ2XNQokr1W0i1TJNHN\n+jkUqcYcMzsuahTJXivplimS6Gb9HIpUY46ZHRc1imSvlXTLFEl0s34ORaoxx8yOixpFstdK\numWKJLpZP4ci1ZhjZsdFjSLZayXdMkUS3ayfQ5FqzDGz46JGkey1km6ZIolu1s+hSDXmmNlx\nUaNI9lpJt0yRRDfr51CkGnPM7LioUSR7raRbpkiim/VzKFKNOWZ2XNQokr1W0i1TJNHN+jkU\nqcYcMzsuahTJXivplimS6Gb9HIpUY46ZHRc1imSvlXTLFEl0s34ORaoxx8yOixpFstdKumWK\nJLpZP4ci1ZhjZsdFjSLZayXdMkUS3ayfQ5FqzDGz46JGkey1km6ZIolu1s+hSDXmmNlxUaNI\n9lpJt0yRRDfr51CkGnPM7LioUSR7raRbpkiim/VzKFKNOWZ2XNQokr1W0i1TJNHN+jkUqcYc\nMzsuahTJXivplimS6Gb9HIpUY46ZHRc1imSvlXTLFEl0s34ORaoxx8yOixpFstdKumWKJLpZ\nP4ci1ZhjZsdFjSI9mSNCZcdrjpkdFzWKFDbHzE7WWCZqFClsjpmdrLFM1ChS2BwzO1ljmahR\npLA5ZnayxjJRo0hhc8zsZI1lokaRwuaY2ckay0SNIoXNMbOTNZaJGkUKm2NmJ2ssEzWKFDbH\nzE7WWCZqFClsjpmdrLFM1ChS2BwzO1ljmahRpLA5ZnayxjJRo0hhc8zsZI1lokaRwuaY2cka\ny0SNIoXNMbOTNZaJGkUKm2NmJ2ssEzWKFDbHzE7WWCZqFClsjpmdrLFM1ChS2BwzO1ljmahR\npLA5ZnayxjJRo0hhc8zsZI1lokaRwuaY2ckay0SNIoXNMbOTNZaJGkUKm2NmJ2ssEzWKFDbH\nzE7WWCZqFClsjpmdrLFM1ChS2BwzO1ljmahRpLA5ZnayxjJRo0hhc8zsZI1lokaRwuaY2cka\ny0SNIoXNMbOTNZaJGkUKm2NmJ2ssEzWKFDbHzE7WWCZqFClsjpmdrLFM1ChS2BwzO1ljmahR\npLA5ZnayxjJRo0hhc8zsZI1lokaRwuaY2ckay0SNIoXNMbOTNZaJGkUKm2NmJ2ssEzWKFDbH\nzE7WWCZqFClsjpmdrLFM1ChS2BwzO1ljmahRpLA5ZnayxjJRo0hhc8zsZI1lokaRwuaY2cka\ny0SNIoXNMbOTNZaJGkUKm2NmJ2ssEzWKFDbHzE7WWCZqFClsjpmdrLFM1ChS2BwzO1ljmahR\npLA5ZnayxjJRo0hhc8zsZI1lokaRwuaY2ckay0SNIoXNMbOTNZaJGkUKm2NmJ2ssEzWKFDbH\nzE7WWCZqFClsjpmdrLFM1ChS2BwzO1ljmahRpLA5ZnayxjJRo0hhc8zsZI1lokaRwuaY2cka\ny0SNIoXNMbOTNZaJGkUKm2NmJ2ssEzWKFDbHzE7WWCZqFClsjpmdrLFM1ChS2BwzO1ljmahR\npLA5ZnayxjJRo0hhc8zsZI1lokaRwuaY2ckay0SNIoXNMbOTNZaJGkUKm2NmJ2ssEzWKFDbH\nzE7WWCZqFClsjpmdrLFi1d5fV82Z1fo9RmD6zfo52Kkxx8xOqNph0XyzDBBQ3Kyfg50ac8zs\nhKqtm/Ztd/lov22btV5AcbN+DnZqzDGzE6rWNrvrx7um1QsobtbPwU6NOWZ2QtWa5qdPRAKK\nm/VzsFNjjpmdUDW+IjnMMbOTNVak2ulnpO3+8hE/I/3dHDM7WWOFqi1vXrVbHAIEBDfr52Cn\nxhwzO8Fq7+vL+0jt6pX3kf5qjpmdrLFM1ChS2BwzO1ljmahRpLA5ZnayxopV44jQ388xs5M1\nVqQaR4Qc5pjZyRorUo0jQg5zzOxkjRWpxhuyDnPM7GSNFalWOCLU3DLW2WXQlJv1c7BTY46Z\nnVA1viI5zDGzkzVWpBpHhBzmmNnJGitUjSNCBnPM7GSNFavGEaG/n2NmJ2ssEzWKFDbHzE7W\nWCZqFClsjpmdrLEqqG0WTbPaBgqY7RQ7NeaY2QlV+3h36PMVh19ftKNIcXPM7GSNFal2KdK6\nWR+Ox/262egFFDfr52CnxhwzO6FqlyK1zeV170Oz0AsobtbPwU6NOWZ2QtUuRfo6/cPfIvRH\nc8zsZI0VqXbpzstXkTgi9DdzzOxkjRWp1jSr1822eTt9eFhzROiP5pjZyRorUu3mZHfTtBwR\n+ps5ZnayxgpV2+02m9Xq8pLD+tceUaS4OWZ2ssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKF\nzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgmahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2\nssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKFzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgm\nahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2ssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKF\nzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgmahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2\nssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKFzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgm\nahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2ssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKF\nzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgmahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2\nssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKFzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgm\nahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2ssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKF\nzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgmahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2\nssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKFzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgm\nahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2ssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKF\nzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgmahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2\nssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKFzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgm\nahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2ssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKF\nzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgmahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2\nssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKFzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgm\nahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2ssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKF\nzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgmahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2\nssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKFzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgm\nahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2ssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKF\nzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgmahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2\nssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKFzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lgm\nahQpbI6ZnayxTNQoUtgcMztZY5moUaSwOWZ2ssYyUaNIYXPM7GSNZaJGkcLmmNnJGstEjSKF\nzTGzkzWWiRpFCptjZidrLBM1ihQ2x8xO1lixau+vq+bMav0eIzD9Zv0c7NSYY2YnVO2waL5Z\nBggobtbPwU6NOWZ2QtXWTfu2u3y037bNWi+guFk/Bzs15pjZCVVrm931413T6gUUN+vnYKfG\nHDM7oWpN89Mnn//mhrHOLoOm3Kyfg50ac8zshKoN+IoE8D8w+mek7f7yUfFnJID/gZFf/5Y3\n37stDlpLAPNj9PtI68v7SO3qtfA+EsD/QN2fyACSQpEABFAkAAEUCUAARQIQQJEABFAkAPhf\nJ9UAAAkWSURBVAEUCUAARQIQYF2kzaJpVtsJA5rW7NxF718s/pXD+nxO+PW0neXbFDeqOcfd\n+uPM2GI1Zc7+pWlfL496O+n45uHlFOjzaTPttw8G4Fmkj/ifB/omLPX8lDU6CTjgF4t/Y9+e\n9nNop46RzTm+3sRajZ7y4WTzOtXOZ6IPIxTpfMR8fSrBft1sJsw5H063qdKAXyz+jZfznw4v\nzcv+8of4+D9nVHO2lxHvy9Vxd/pqMvo7iPXZwrptXg6nL5UT7FyeMIdNe+kiRTr/0tOlAYdm\nMWXO4fS91MuUbw+PD7+oOOGhEf0aV3NeTPO1nfG/Daaas/wYsWtO35e9j/+S1DZXU+dvykfb\n+Zhz+nq72FOk5vi9gwm7uNy6O/9Ystrsxn9h2oiKVPjF4kFjWtF2VHOOn0/+ibG+7hfYOSyX\nFOls6+X28Zkw5/yzcDutAbt2yo8QV0RfkV7OY14/Zh0m/DShmnP91uH2j78xY47X+6d8gVw0\nX39kLpYUafW62Tbnl4Amfbv8vcbdZrWYkHUn+TVg0S8Wnzq43h1X7akB2wk/k8jmrJvl+ynS\nqnk5v2D2Mn7Mx89I559ppzzom6uFfbP874t0/Saqadrx35Pp1ri5+WIyHtEvFm/b7zGvE+yo\n5nzGOj1Qp//Zj52ietXu1MKvh3078S/fGYBnkY673WazWl2+h5/yolu1NfZF9YvFby+XV9JX\nr6OfttI5m1OVFucqTnq0VO8jnX4qvhk5aVJ/3J5pALPkPyuS3ZcoK8y2Y2bnd+bkVcCsHpvq\nmG3HzM7vzMmrgFk9NtUx246Znd+Zk1cBs3psqmO2HTM7v+PpVXUm58ngv7QjmmO2nTA/ZnYK\nqpV0hqE6k9Nh3CyVHdEcs+2E+TGz8zueRVKdyekwcq8qO6I5ZtuJ8mNm53dMiyQ6k9Nh9GMj\nsiOaY7adID9mdn7HtUiiMzmPjH5sVHZEc8y2E+PHzM7v2BYphlm9EFQds+2Y2fmdOXkVMKvH\npjpm2zGz8zsz8Wq2U5Ud0Ryz7bj5qWLHK/KPTNrFdnW+fTXxoPQtmYqk384kP2Z2+otU0BAw\nZRfLj3cTJvymjNROwByz7UzxY2ZngEgFDQGT3gVdXn4JejP+dzeVdiLmmG1n0sttVnaGiFTQ\nEDDpr+453P9lKn9rJ2KO2XYm/b0NVnaGiFTQEDDxL5WhSL/davTMNbMzRKSChoAJu1h8/iG3\nm/D34wntRMwx284EP2Z2hohU0BAw/aeAbTvhb2wV2omYY7ad6T8judgZIlJBQ8CUXaw+jwEL\nTzLmKVLEdqb4MbMzQKSChoDJ75Q0k/47CY8kKlLAdia/j2Rkp79IBQ0BSd8rdyhSAGZ+KBLA\nXHAu0vTTItLfOlYdXhHNMdvOdD9mdgZiXCTBaRHlY6M6vCKaY7YdgR8zOwPxLVLIaZHxqOyI\n5phtx81PfTu+RQo5LTIelR3RHLPtuPmpb8ci9lN0p0Xezq+oTv+v9mnsiOaYbUfnx8xOf8VK\nOsORnRb5+m+pjP/PBCvtiOaYbUfmx8xOf3yLpDotcv6vex2Pk+eo7IjmmG1H5cfMzgB8i6Q6\nLfL135uc+oeT6vCKaI7ZdkR+zOwMwLhIotMi1++SFe8jKQ6viOaYbUfjx8zOAJyLpGF9/UNu\n4vfdKTHbjpmdAeQv0vH18m33+1/8PbYzwGw7Znb641kk5ZvcglkqO6I5ZttR+jGzM0S1ks4w\nzJ4qFKmWHzM7Q1Qr6QCkhiIBCHAukua0iAyVHdEcs+24+altx7hIotMix3Ur+XZZZUc0x2w7\nKj9mdvrjWyTVaZG15udOnR3JHLPt6GJZ2RmAb5FUp0UazS5VdkRzzLaj8mNmZwC+RVKdFlH/\nBSMqO9N/jUJqZyLqWBPRHTXqrVhJZziq0yLr5uBlRzLHbDu6WFZ2BuBbJNlpkeVS8nv7Kjui\nOWbbUfkxs9Mf3yLJ3qDe2rznLpxjth2ZHzM7AxQraIxDtYtXzT6TFkm0HZUfMztDFCto/C31\nXgGdI2bbMbMzgPxF8vhrbVwx246ZnQHM1nhvXkUvBOXEbDtmdgZgXCTVaZHX5buTHdEcs+2o\n/JjZ6Y9vkVSnRUQ/c+oOr1jZUf1ELvJjZmcAvkVSnRYRPTY6O5I5ZtvRxbKyM0Sxsl5/zH7u\nlB9esRgjw8xPfTte+W9RnRYRoTu8IjqxZLUdNz/17fgWSXZa5Iv3aceuVHZEc8y2o/ZjZqeM\ncZFEp0VufvC0sCOaY7YdlR8zO/3xLZLqtMj3QzPp945VdkRzzLaj8mNmZwC+RVKdFmmbt+Oy\n2e+XzaR3KHR2RL9naLUdXSwrOwPwLZLyZbLX0x9wu2l/oXrSV+1E21HGMrIzRLG2YG9Up0XO\nO92e/4Ca+r2Uxo5ojtl2VH7M7AzAt0iq0yKr03cL+2ZxfDc5vCKaY7YdkR8zOwPwLVIj+nlx\ne77/8rczTfrv8qrsiOaYbUflx8zOEMVKOsOR7eL1fP9L06wt7JgVSbQdmR8zOwMUK+kApIYi\nAQiYQZGmnhbZLI7H/aJZiH76nGpHPMdsO1P9mNnpj3GRdEd7zm/QnZj24KgOr4jmmG1H5MfM\nzgB8i6Q6LbJs3i5/c+3btPf4VHZEc8y2o/JjZmcAvkVSnRY5/5m0O78KNO0PJ93hFdGJJavt\nqPyY2RmAb5GUp0VW5z+Ypv+t1Co7ohNLRttRxjKyM0Sxks5wVKdFls1u27THqd8tqOyI5pht\nR+XHzM4QxUo6w1GdFrn8ZsrreaWTvl1W2RHNMduOyo+ZnQH4Fkl1WuS4aS/vky/eLOyI5pht\nR+bHzE5/fIukOi2iQmVHNMdsO25+qtsxLhLAfKBIAAKMi6Q+LTIRlR3RHLPtuPmpbse3SLLT\nIhpUdkRzzLbj5qe+Hd8iqU6LiFDZEc0x246bn/p2fIukOi0iQmVHNMdsO25+6tuxiP0U1WkR\nEcrDK6ITS0bbcfNT345F7KeoTouIUNkRzTHbjpuf+nZ8i6Q6LSJCZUc0x2w7bn7q2/Etkuq0\niAqVHdEcs+24+alux7hIAPOBIgEIoEgAAigSgACKBCCAIgEIoEgAAigSgACKBCCAIgEIoEgA\nAigSgACKBCDgH9BjluhQC7L/AAAAAElFTkSuQmCC",
      "text/plain": [
       "Plot with title \"zoom on a part of the dendrogram\""
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# store the dedrogram in an object\n",
    "dhc <- as.dendrogram(hc)\n",
    "\n",
    "# set the margin\n",
    "par(mar=c(4,4,2,2))\n",
    "\n",
    "print(dhc[[2]][[1]])\n",
    "# Plot the Second group\n",
    "plot(dhc[[2]][[1]] , main= \"zoom on a part of the dendrogram\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3 绘制带颜色和图例的树形图 Dendrogram with color and legend in R\n",
    "本节主要讲述基本树状图的自定义。展示了如何为叶子和样本名称添加特定的颜色。它允许检查在聚类之后是否确实找到了预期的类。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**首先生成数据**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 6 × 8</caption>\n",
       "<thead>\n",
       "\t<tr><th></th><th scope=col>sample</th><th scope=col>specie</th><th scope=col>treatment</th><th scope=col>gene_1</th><th scope=col>gene_2</th><th scope=col>gene_3</th><th scope=col>gene_4</th><th scope=col>gene_5</th></tr>\n",
       "\t<tr><th></th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><th scope=row>sample_1</th><td>sample_1</td><td>dicoccoides</td><td>High</td><td>126</td><td>133</td><td>110</td><td>111</td><td>135</td></tr>\n",
       "\t<tr><th scope=row>sample_2</th><td>sample_2</td><td>dicoccoides</td><td>High</td><td>130</td><td>130</td><td>111</td><td>121</td><td>113</td></tr>\n",
       "\t<tr><th scope=row>sample_3</th><td>sample_3</td><td>dicoccoides</td><td>High</td><td>124</td><td>135</td><td>115</td><td>125</td><td>140</td></tr>\n",
       "\t<tr><th scope=row>sample_4</th><td>sample_4</td><td>dicoccoides</td><td>High</td><td>111</td><td>109</td><td>135</td><td>135</td><td>132</td></tr>\n",
       "\t<tr><th scope=row>sample_5</th><td>sample_5</td><td>dicoccoides</td><td>Low </td><td> 20</td><td> 34</td><td>  9</td><td> 17</td><td> 37</td></tr>\n",
       "\t<tr><th scope=row>sample_6</th><td>sample_6</td><td>dicoccoides</td><td>Low </td><td> 32</td><td> 26</td><td> 21</td><td>  1</td><td> 24</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 6 × 8\n",
       "\\begin{tabular}{r|llllllll}\n",
       "  & sample & specie & treatment & gene\\_1 & gene\\_2 & gene\\_3 & gene\\_4 & gene\\_5\\\\\n",
       "  & <fct> & <fct> & <fct> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
       "\\hline\n",
       "\tsample\\_1 & sample\\_1 & dicoccoides & High & 126 & 133 & 110 & 111 & 135\\\\\n",
       "\tsample\\_2 & sample\\_2 & dicoccoides & High & 130 & 130 & 111 & 121 & 113\\\\\n",
       "\tsample\\_3 & sample\\_3 & dicoccoides & High & 124 & 135 & 115 & 125 & 140\\\\\n",
       "\tsample\\_4 & sample\\_4 & dicoccoides & High & 111 & 109 & 135 & 135 & 132\\\\\n",
       "\tsample\\_5 & sample\\_5 & dicoccoides & Low  &  20 &  34 &   9 &  17 &  37\\\\\n",
       "\tsample\\_6 & sample\\_6 & dicoccoides & Low  &  32 &  26 &  21 &   1 &  24\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 6 × 8\n",
       "\n",
       "| <!--/--> | sample &lt;fct&gt; | specie &lt;fct&gt; | treatment &lt;fct&gt; | gene_1 &lt;dbl&gt; | gene_2 &lt;dbl&gt; | gene_3 &lt;dbl&gt; | gene_4 &lt;dbl&gt; | gene_5 &lt;dbl&gt; |\n",
       "|---|---|---|---|---|---|---|---|---|\n",
       "| sample_1 | sample_1 | dicoccoides | High | 126 | 133 | 110 | 111 | 135 |\n",
       "| sample_2 | sample_2 | dicoccoides | High | 130 | 130 | 111 | 121 | 113 |\n",
       "| sample_3 | sample_3 | dicoccoides | High | 124 | 135 | 115 | 125 | 140 |\n",
       "| sample_4 | sample_4 | dicoccoides | High | 111 | 109 | 135 | 135 | 132 |\n",
       "| sample_5 | sample_5 | dicoccoides | Low  |  20 |  34 |   9 |  17 |  37 |\n",
       "| sample_6 | sample_6 | dicoccoides | Low  |  32 |  26 |  21 |   1 |  24 |\n",
       "\n"
      ],
      "text/plain": [
       "         sample   specie      treatment gene_1 gene_2 gene_3 gene_4 gene_5\n",
       "sample_1 sample_1 dicoccoides High      126    133    110    111    135   \n",
       "sample_2 sample_2 dicoccoides High      130    130    111    121    113   \n",
       "sample_3 sample_3 dicoccoides High      124    135    115    125    140   \n",
       "sample_4 sample_4 dicoccoides High      111    109    135    135    132   \n",
       "sample_5 sample_5 dicoccoides Low        20     34      9     17     37   \n",
       "sample_6 sample_6 dicoccoides Low        32     26     21      1     24   "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Build dataset (just copy and paste, this is NOT interesting)\n",
    "# 生成数据，可以跳过\n",
    "sample <- paste(rep(\"sample_\",24) , seq(1,24) , sep=\"\")\n",
    "specie <- c(rep(\"dicoccoides\" , 8) , rep(\"dicoccum\" , 8) , rep(\"durum\" , 8))\n",
    "treatment <- rep(c(rep(\"High\",4 ) , rep(\"Low\",4)),3)\n",
    "data <- data.frame(sample,specie,treatment)\n",
    "for (i in seq(1:5)){\n",
    "      gene=sample(c(1:40) , 24 )\n",
    "      data=cbind(data , gene)\n",
    "      colnames(data)[ncol(data)]=paste(\"gene_\",i,sep=\"\")\n",
    "     }\n",
    "data[data$treatment==\"High\" , c(4:8)]=data[data$treatment==\"High\" , c(4:8)]+100\n",
    "data[data$specie==\"durum\" , c(4:8)]=data[data$specie==\"durum\" , c(4:8)]-30\n",
    "rownames(data) <- data[,1]    \n",
    "head(data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**然后聚类**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'dendrogram' with 2 branches and 24 members total, at height 328.8632 "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Compute Euclidean distance between samples\n",
    "dist=dist(data[ , c(4:8)] , diag=TRUE)\n",
    "\n",
    "# Perfor clustering with hclust\n",
    "# 聚类并保存结果\n",
    "hc <- hclust(dist)\n",
    "dhc <- as.dendrogram(hc)\n",
    "dhc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于每个节点都有自己的属性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'dendrogram' with 2 branches and 2 members total, at height 23.81176 "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<dl>\n",
       "\t<dt>$members</dt>\n",
       "\t\t<dd>2</dd>\n",
       "\t<dt>$midpoint</dt>\n",
       "\t\t<dd>0.5</dd>\n",
       "\t<dt>$height</dt>\n",
       "\t\t<dd>23.8117617995813</dd>\n",
       "\t<dt>$class</dt>\n",
       "\t\t<dd>'dendrogram'</dd>\n",
       "</dl>\n"
      ],
      "text/latex": [
       "\\begin{description}\n",
       "\\item[\\$members] 2\n",
       "\\item[\\$midpoint] 0.5\n",
       "\\item[\\$height] 23.8117617995813\n",
       "\\item[\\$class] 'dendrogram'\n",
       "\\end{description}\n"
      ],
      "text/markdown": [
       "$members\n",
       ":   2\n",
       "$midpoint\n",
       ":   0.5\n",
       "$height\n",
       ":   23.8117617995813\n",
       "$class\n",
       ":   'dendrogram'\n",
       "\n",
       "\n"
      ],
      "text/plain": [
       "$members\n",
       "[1] 2\n",
       "\n",
       "$midpoint\n",
       "[1] 0.5\n",
       "\n",
       "$height\n",
       "[1] 23.81176\n",
       "\n",
       "$class\n",
       "[1] \"dendrogram\"\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Actually, each leaf of the tree has several attributes, like the color, the shape.. Have a look to it: \n",
    "# 选择特别的节点\n",
    "specific_leaf <- dhc[[1]][[1]][[1]]\n",
    "specific_leaf\n",
    "attributes(specific_leaf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**创建改变叶子节点属性函数**\n",
    "\n",
    "如果想给树的每片叶子上色，必须改变每片叶子的属性。这可以使用dendrapply函数来完成。因此，创建了一个函数，向叶子节点添加属性。如果应用自己的数据，改变treatment和specie的值就行了。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "i=0\n",
    "colLab<-function(n)\n",
    "{\n",
    "    # 判断是否为节点\n",
    "    if(is.leaf(n))\n",
    "    {\n",
    "        # 获得节点的属性\n",
    "        a=attributes(n)\n",
    "        \n",
    "        # I deduce the line in the original data, and so the treatment and the specie.\n",
    "        # 获得该点的信息\n",
    "        ligne=match(attributes(n)$label,data[,1])\n",
    "        # 根据自己的结果设置\n",
    "        treatment=data[ligne,3];\n",
    "            if(treatment==\"Low\"){col_treatment=\"blue\"};if(treatment==\"High\"){col_treatment=\"red\"}\n",
    "        # 根据种类设置颜色，根据自己的结果设置\n",
    "        specie=data[ligne,2];\n",
    "            if(specie==\"dicoccoides\"){col_specie=\"red\"};if(specie==\"dicoccum\"){col_specie=\"Darkgreen\"};if(specie==\"durum\"){col_specie=\"blue\"}\n",
    "        \n",
    "        # M odification of leaf attribute\n",
    "        # 修改节点的属性\n",
    "        attr(n,\"nodePar\")<-c(a$nodePar,list(cex=1.5,lab.cex=1,pch=20,col=col_treatment,lab.col=col_specie,lab.font=1,lab.cex=1))\n",
    "        }\n",
    "    return(n)\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**绘图**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAt1BMVEUAAAAAAP8AZABNTU1N\nTf9Nk01oaGhoaP9oo2h8fHx8fP98r3yMjIyMjP+MuYyampqamv+awpqnp6enp/+nyaeysrKy\nsv+y0LK9vb29vf+9173Hx8fHx//H3cfQ0NDQ0P/Q4tDZ2dnZ2f/Z59nh4eHh4f/h7OHp6enp\n6f/p8enw8PDw8P/w9vD/AAD/TU3/aGj/fHz/jIz/mpr/p6f/srL/vb3/x8f/0ND/2dn/4eH/\n6en/8PD///9Q4GrEAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2dDVvTSBuF0xZQ\nFEWrKOou6i6KosXv9VX7/3/X26TtkCaZkJ7MhCfkvq9LKUzmmZPTnOZr2iZzAGhNct0CAG4C\nBAkgAAQJIAAECSAABAkgAAQJIAAECSAABAkgAAQJIAAECSAABAkgAAQJIAAECSAABAkgAAQJ\nIAAECSAABAkgAAQJIAAECSAABAkgAAQJIAAECSAABAkgAAQJIAAECSAABAkgAAQJIAAECSAA\nBAkgAAQJIAAECSAABAkgAAQJIAAECSAABAkgAAQJIAAECSAABAkgAAQJIAAECSAABAkgAARp\naw6jLVzJ0SRJ8lWWj5Mk6jNXXb6ToXsKnmzJ68kWlm21cDVHi+02F6R1xWsIUkdD9xQ82ZKt\nNqMA29xekpxWVLyGIHU0dE/Bky3pOkiFEgaCBFXgzdWcH+0vNqKDF/NsY0qWG9Ti/7O9ZFre\ntM+ni53I/klx4fwyru9i4UkymZ5tjndymB7Nncw3yq5/yVV8vZB1uOpbUShd5HjvcpFy3Vxr\nWWH264uDxaO9tG55Zcr1TlJB+f3ngCBIV3I2WW1E+4XNaW/9p2yx1c/10tP6IC37rhd+nR9v\nf9XvYJ4vse5/WXGaPZ6c5UfNF0pL5BbZqFtqrQ7SusuibnllSvWWgpJhJokgXcnidXexMzpf\nbDfHm5tTkjUUNsF16pKT2iAt+64XnuSGO1gXSLfQuiCtOMyPmi90ucheqW6ptTJIx4u0n8/n\n07RLaWW89dpfqOwjBOlKFttG+qJ9vtzkcltcupEVN8HFtjc5zVK3V2rLb6ZZ3+WGer5M6oqT\nRePx4o9HWRbrzpEmr7NtfOIptF7kZJIVqqiba60O0t5yzedVrwZV9U6yV51hblLDXOutSF/t\n12cCG5vTSfEP8+x1Ov3z+d7RWaktv5lmfRcLr7J44EY7THd8KdPla7s/SNk4btRSoXmyitVJ\nVqiibq7Vd46UH3RzkYp6OUHDY5hrvRVHqyOWUm7Oi3+YV2+BVZvpemdWOiRzdc+qCnoqVhW6\n7JntHb11K/edrvXsxXR/85DucsjKegQJfEzXG2nVTkYM0vrXNaUu1QWvDFJSXnT5wFu3Mger\nHy/2cmV9K0qQUoa51lty/mJ5hWp/HjZIk4qNLv9KPykV9FSsKlTYZ1bUze9RKxW+WPzYOzw+\nvWqPNCkXGBzDXGuBk0PPK+9qi3q9/MO+7xwpt4z788H6PCvHQeNzpNzPqkJpU1bpJDtzqqib\na61WuLcqW7XmPp0ECTzsuTOa9Svv+Ty3wUyye0avJ8s/lK/anZeWcX1fLK+cvVju65Y0uGqX\nH97tOkqFsuO9F8vrcseVdXOt1QpXv+T2SJdD+3QSJPCw2GT2z7JrDulchHRTS3+6DeZw8/zE\n3Uc6zi1cWCYfwiW5G6nuJujyhkxhwywOXxw1V+hyzEl13XxrpcL9bKyTVboKQ3t0EiTwsb7Y\nkL3aHyab50rZVatkeVs//fX15cyGy4ULy7i+J0lu4TXrLbTyTQvF4Vc/qwolm5MfynU3pkZU\nKXy9jloW0OLQ1ToJEnjJzo/2l6cE6cnB5rnL6aJ1/4X7QzrrLTk42Vi4sMxl32xi3kHh/Obk\ncOKZa1ce/nLUUqG06cVeMpme++rmWysVpn+cHJ6eLc+jimteqZMgwQ2jfpMe6gYfC9y8sRCk\nLsHNGwtB6hLcvLEQpC7BzRsLQeoS3AQIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABB\nAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQII\nAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABB\nAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQII\nAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAgjAEIOUQCiu+6m0wxCtGOI6xwEnHUO0\nYojrHAecdAzRiiGucxxw0jFEK4a4znHASccQrRjiOscBJx1DtGKI6xwHnHQM0YohrnMccNIx\n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\negHQK78+Osg+nu1g+jrEELPZbOsWrelm1huNRlu3aE03s15b1CCd7+U+6nC/9RCzJVu1aE03\ns95oyVYtWtPNrNceNUjTZPLiNHt0djJJpm2HsL6hWq9nfUO1Xq89apAmyal7fJpMWg4xm/k2\nEn+L1nQz641Gvo3E36I13cx6AVCDtPHR1eXPsW74FaFrrG+o1utZ31Ct1wtAB3ukBljfUK3X\ns76hWq8XgBbnSCdn2aMrz5Ga4N1EjJyDWLL6TgwAABRpSURBVK/n30RqNh6p6WbWa498+Xs/\nd+y2d95WhvUN1Xo96xuq9XrtaXEfaZrdR5ocHF1xH6kZni2ktqXP931C1/NvITXbjtR0M+u1\npYOZDQA3H4IEEACCBBAAggQQAIIEEACCBBAAggQQAIIEEACCBBAAggQQgOsP0mjnH1/Tuwej\nnSfz+bNbo51HxbY3j+5kM6du3fur2PTPk3tZ071HxcpvH98dp9y+/7dvzIpJOP8+vZ/1uv/4\n39o12Y4fF7NPPzb/9OfrbPb5Z6WOjw/H47uvlo/H4+1GerYzuvWs8LcPD0ajOy+Xj33zZjx/\n//FpNvvys7Lp+e2FS68Kf/z9dXbxPet28c2jsLRGs4v/eRZdWPF4d/H/08VQdwvP4p9vF4v/\nvy/0ff6vuu/z3fHt597KbTAQpMUW/6Gy5cNOGodnT7JU3NlsezK65N5mr1u5ps1eT8eX3PfI\nKQXp4+1cr7tbrJiPX19mFz/m37MJqJ/zDX8usr99qdDxcTcnunGQ3twb7TybV/m3tHblXNMg\nLSV9Xk6d3czEUtLyVWr8eKNpuVY/Kta32H1jqNmXP9XLvl9YsfZj8/n4vRhpbWJxpLf3x7vP\nVxtAiCexhIUgvdwZPaqK0qPRYj/0aGf04MP8Q/b4kpejB+8Wu5479+ZvFvurl5u9dv56kz16\nlxbOtbwaP3y/2L/cvT9/u3jp3HjhnG2Sb3o83v37bfbo/avdwkai8Gu5Hc6+/pn//jLL75O+\npb/9+XHxealoU8TidfTj891sG2gapDdZWB6l/r27N9rYJz1Kf/3wbCeL12ZgRpvkWjJJ32bf\nFlv4728bypeSHo8ff1y4lGnNr9Uic98u0vX9820jf+NN8p1ms58X2UBlHo7vf1z8lz6V7x9u\nPB9f0/B9nX39ne0FN5L+dpnw8cOP8/f3xzH2SRaCNP+wOBR78LLUsjNatmchG+3km+4s//hm\ntDjy+2dzl7QzeuMev9nodXf8Mf3xdvx0EafNXdL/LrxB2h2/dY/fjndzLbUbgrde9hR/m6UH\nIfM/s0+5lovlcr8vPv0uBml3Wf397u33xSD5N/wH2QvR0oIPo1v5Tktr5+92br0rBumfndog\nXcz+lJUvJe0u/f04vp1vWq7VbNltudor/t2t8W/+58ts9rXiCHKcjjJeD7W70emPG+jPxkjz\nLHGPl0sX9AXCRJCyg5DFgcazNx9KLeunufiyufq5420q/7J+rjI/Cy/ri6ft8+/0QenQbmPB\njV+e+4P0wx+k5W9VB3DrX/58/lzUsa7+8e7dovRn3iCt/Ks6flv/9uHOndIh3OJl7c67cpeV\npLWuCn3O32ImLhcvHLDeH999X+6xXm5xDLw4wvvxa3PHtMpsxVCroHv1zbc9NN4GI0FKLx7s\nFDeEnVyQPmzukXaWe6QPWePmE+7fI7lXzPyz7vhvNkvPUEtB8u+R5m93vYfbvy48pwOrAf5b\nHhltvG5+mq03mU+fCzpuL6Wnj+4Wpb/ZKZw/rln68tfymG7Tv1uj9UvWrTvlc6S/RqO/5p4g\nfV1vqBuv+Jmkh/kXKsdFLkiF/cR8/vd4/PfcF6SFi98uSi9ED9Pn4+nySfm4cb7zdfZrvjj3\n/LUcacP/5QB/P6/QFwgzQVrw5tm9W/nnbn2OlJ5AFc6RHo3u/DNPj/wfpNefHmw27bzMXlBL\n50iPx3f/nafHyA/Ti2APi0J+f06PsUtBWhwQvMpeNivOkd76z5l+zTyXqL6mZwtL/mweyf+Y\nfV1LmX3e1PHcyX0/vlvc7N6MStc0Mx6kZ0dLPjzYXOaZ8+zd6E75YsO7O+kFoHKQvnz/8TN7\nuSmc7Sw21PtPn7/KQvHx8aYp63Ok9IznW8mU93fTUx5fkBb8+vHl04YVixezx2/n93cXSXq1\neab7a3bx7df8y8UiST8/zTaOCh+mZ0dLPj4McKJbxlKQitRdtVte+x7tpE/3zruqpuXF8Y1j\nxdVVpd30mdt9Xx7w++ziZ/ny993c4dvtj5ttz3O7qwI/li+NJdLLSquHs8IL9DfX8rP4XtjH\nblt7NS5tds9yO+EcqX+rh6PNHVL6crNueln5ttEni5ejcpDcgepC+cYBV+7wNvM3x1VX7Z4u\nXqhqglTmVe7U6ulGy8/cme73jZb0Kp+TGmOHZDpItfeRni3ycmvRON8pXfH751F2H2nn3pPi\nfaTni1DcTs3ffVxIxJJfn6rezP3v4+w+0u79p2HuI31bx6d0X+XXl/Wj318LOt66iyPvHzY+\nxn+0jk/FfTh3hWbhckXXN7fKAfv168ePL1+yM5HiFbW3b58/v38/O30pWnvVfaS3t8svDXVB\nWhyiPcxuSdx/Wnox/O/rp+wOwvffxZbH6/jsxtgfWQiSLb7WP4VD4kG8Dzgo8DDK6X+3DDpI\nNc9f6DzV1Kv7rJOwIkKj6ZN6dddJ5AYGqcnslyU3I0j+9a1xQmuS9AXpRZA6p9HslyU3Ikj+\n9a1xQmuS9IXpRZA6p2b2S5EbEST/+tY4oTVJ+sL0IkhX4p/i4m+pa6qZ/VKkUZD8E4FqpgjV\n1NuiqYmImvWtcUJrkvT5e2n+bdFL06dx/UHyT3Hxt9Q11c1+KdAoSP6JQDVThGrqbdHURETN\n+tY4oTVJ+vy9NP+26KXp07j+IPmnuNS01DTVz37ZoNmhnX8iUM0UoZp6zZsaifCvb40TWpOk\nr6aX5l/zXpo+DQNB8k5xqWvxN10x+yVPw3Mk/0SgmilCNfUaNzUS4V/fGie0JklfXS/Nv8a9\nNH0aFoLkm+JS2+Jvumr2yyVNLzb4JwLVTBGqqde0qZkI//rWOKE1Sfrqemn+Ne2l6dMwEaTA\nXDX7xXEjrtrVrW+NE1qTpC9EL67aWeaGBOnaIEiXGAxS3dfbCJ2uOGHeHn/8OpwyVjOUCf8k\nKzT/OhyqhuEF6dX91MT7Fe+imP/8kr6GfSnNHN6keZBq6vmb2oqI7Z+mr1EvqVOxV2v/NAYX\npLvL+whV70f6vHyzzexiu6fb21JTz9/UWkRk/zR9zXpJnQq92vunMbQgPR/fzd5q/rz8Dtkf\ns89/0ufg8o2q1TQNUk09f1N7EXH90/Q17CV12uwVwD+NoQUp/dyG6s9syD4fZ/X2z1p9TYNU\nU8/f1F5EXP80fQ17SZ02ewXwT2NoQcoO66qDlB0RBAxSTT1/U3sRcf3T9DXsJXUqf5IQQVoS\ndUO4vdojvS1/uNmn1YvZr82PbCvRNEg19fxN7UXE9U/T17CX1GmzVwD/NIYWpNU50qvd8sdt\nrg6vf17MfhSbNtjyHKmqnr+pvYhOzpG21Newl9Sp8hypjX8aQwvS/P5qAnDFHMYvs8qPjS7S\n+KpdTT1/U2sRkf3T9DXrJXUq9Grvn8bggpTdRxpXfxvFz+yjPT1fZODY7j6Sp56/qa2ILu4j\n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\nM2v/Lt+Q/Tz7L/sy7P/K9/L8E4tqphzV1PM3SSI69E/T5++l+efvpekLgI0g7Yz+mt8ZvXt3\nZ1S8feFv0ZrSV6O36SW76huyv9KrPeVbEP6JRTVTjmrq+ZskER36p+nz99L88/fS9AXARpDS\nI4gni1e/N6PiR3v6W7SmND/305ek6iB9Sec6Vr250jex6IopR556/iZJRIf+afr8vTT//L00\nfQGwE6SX6UTJyg+Br27Rmu6O374a786rD+1+/ZxdzKuOCvwTi2qmHNXU8zdJIjr0T9Pn76X5\n5++l6QuAjSDdWxxKvBvdmv9TeuL8LVpT9p6Up6mZpQPl7MNuv6evZaUZ+P6JRTVTjmrq+Zsk\nER36p+nz99L88/fS9AXARpBepk9Y9i1xDxq3iE3Pd7NJDbf/Lqv4cZHdD//0X6nFP7GoZspR\nTb2aJkVEl/5J+vy9NP9qemn62mMjSIsD8sV/D0ajR1u0iE0S/olFNVOOQlMzlAn/JCs0/zoc\nqiFGggTQbwgSQACMBOnZrfn83a3RrfK7YPwtYpOEf2JRzZSj0NQMZcI/yQrNvw6HaoiNIGUn\nt9nHTRefOX+L2CThn1hUM+UoNDVDmfBPskLzr8OhmmIjSHdGf2XfoP1X6Qagv0VskvBPLKqZ\nchSamqFM+CdZofnX4VBNsRGk9AXwTXqJqPKGYnWL2CThn1hUM+UoNDVDmfBPskLzr8OhmmIn\nSPfSCZKVG0J1i9gk4Z9YVDPlKDQ1Q5nwT7JC86/DoZpiI0h3Rm9ejnbmlYcmvhaxScI/sahm\nylFoaoYy4Z9kheZfh0M1xUaQsk/IfZK+ABan7ftbxCYJ/8SimilHoakZyoR/khWafx0O1RQb\nQZo/28luot/6a4sWsUnCP7GoZspRaGqGMuGfZIXmX4dDNcRIkAD6DUECCABBAggAQQIIAEEC\nCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggA\nQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEECCABBAggAQQIIAEEC\nCABBAggAQQIIAEECCABBAgjA/wEdVZvvesoqbgAAAABJRU5ErkJggg==",
      "text/plain": [
       "Plot with title \"structure of the population\""
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 应用函数\n",
    "dL <- dendrapply(dhc, colLab)\n",
    " \n",
    "# And the plot\n",
    "plot(dL , main=\"structure of the population\")\n",
    "# 图例\n",
    "legend(\"topright\",\n",
    "     # 文字\n",
    "     legend = c(\"High Nitrogen\" , \"Low Nitrogen\" , \"Durum\" , \"Dicoccoides\" , \"Dicoccum\"), \n",
    "     # 颜色\n",
    "     col = c(\"red\", \"blue\" , \"blue\" , \"red\" , \"Darkgreen\"), \n",
    "     pch = c(20,20,4,4,4), bty = \"n\",  pt.cex = 1.5, cex = 0.8 , \n",
    "     text.col = \"black\", horiz = FALSE, inset = c(0, 0.1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3 使用DENDEXTEND绘制树形图 MORE CUSTOMIZATION WITH DENDEXTEND\n",
    "dendextend主要是自定义层次聚类图，对第二节的补充。dendextend包允许在树状图定制方面更进一步。这里有一组例子展示了主要的可能性，比如在底部添加颜色条，面对面绘制2棵树等等。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 基础树形图绘制 Basic dendrogram\n",
    "DENDEXTEND首先需要绘制如下最基本的树形图，然后进行相应更改"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 6 × 11</caption>\n",
       "<thead>\n",
       "\t<tr><th></th><th scope=col>mpg</th><th scope=col>cyl</th><th scope=col>disp</th><th scope=col>hp</th><th scope=col>drat</th><th scope=col>wt</th><th scope=col>qsec</th><th scope=col>vs</th><th scope=col>am</th><th scope=col>gear</th><th scope=col>carb</th></tr>\n",
       "\t<tr><th></th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><th scope=row>Mazda RX4</th><td>21.0</td><td>6</td><td>160</td><td>110</td><td>3.90</td><td>2.620</td><td>16.46</td><td>0</td><td>1</td><td>4</td><td>4</td></tr>\n",
       "\t<tr><th scope=row>Mazda RX4 Wag</th><td>21.0</td><td>6</td><td>160</td><td>110</td><td>3.90</td><td>2.875</td><td>17.02</td><td>0</td><td>1</td><td>4</td><td>4</td></tr>\n",
       "\t<tr><th scope=row>Datsun 710</th><td>22.8</td><td>4</td><td>108</td><td> 93</td><td>3.85</td><td>2.320</td><td>18.61</td><td>1</td><td>1</td><td>4</td><td>1</td></tr>\n",
       "\t<tr><th scope=row>Hornet 4 Drive</th><td>21.4</td><td>6</td><td>258</td><td>110</td><td>3.08</td><td>3.215</td><td>19.44</td><td>1</td><td>0</td><td>3</td><td>1</td></tr>\n",
       "\t<tr><th scope=row>Hornet Sportabout</th><td>18.7</td><td>8</td><td>360</td><td>175</td><td>3.15</td><td>3.440</td><td>17.02</td><td>0</td><td>0</td><td>3</td><td>2</td></tr>\n",
       "\t<tr><th scope=row>Valiant</th><td>18.1</td><td>6</td><td>225</td><td>105</td><td>2.76</td><td>3.460</td><td>20.22</td><td>1</td><td>0</td><td>3</td><td>1</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 6 × 11\n",
       "\\begin{tabular}{r|lllllllllll}\n",
       "  & mpg & cyl & disp & hp & drat & wt & qsec & vs & am & gear & carb\\\\\n",
       "  & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
       "\\hline\n",
       "\tMazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620 & 16.46 & 0 & 1 & 4 & 4\\\\\n",
       "\tMazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875 & 17.02 & 0 & 1 & 4 & 4\\\\\n",
       "\tDatsun 710 & 22.8 & 4 & 108 &  93 & 3.85 & 2.320 & 18.61 & 1 & 1 & 4 & 1\\\\\n",
       "\tHornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215 & 19.44 & 1 & 0 & 3 & 1\\\\\n",
       "\tHornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440 & 17.02 & 0 & 0 & 3 & 2\\\\\n",
       "\tValiant & 18.1 & 6 & 225 & 105 & 2.76 & 3.460 & 20.22 & 1 & 0 & 3 & 1\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 6 × 11\n",
       "\n",
       "| <!--/--> | mpg &lt;dbl&gt; | cyl &lt;dbl&gt; | disp &lt;dbl&gt; | hp &lt;dbl&gt; | drat &lt;dbl&gt; | wt &lt;dbl&gt; | qsec &lt;dbl&gt; | vs &lt;dbl&gt; | am &lt;dbl&gt; | gear &lt;dbl&gt; | carb &lt;dbl&gt; |\n",
       "|---|---|---|---|---|---|---|---|---|---|---|---|\n",
       "| Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 | 0 | 1 | 4 | 4 |\n",
       "| Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 | 0 | 1 | 4 | 4 |\n",
       "| Datsun 710 | 22.8 | 4 | 108 |  93 | 3.85 | 2.320 | 18.61 | 1 | 1 | 4 | 1 |\n",
       "| Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 | 1 | 0 | 3 | 1 |\n",
       "| Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 | 0 | 0 | 3 | 2 |\n",
       "| Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 | 1 | 0 | 3 | 1 |\n",
       "\n"
      ],
      "text/plain": [
       "                  mpg  cyl disp hp  drat wt    qsec  vs am gear carb\n",
       "Mazda RX4         21.0 6   160  110 3.90 2.620 16.46 0  1  4    4   \n",
       "Mazda RX4 Wag     21.0 6   160  110 3.90 2.875 17.02 0  1  4    4   \n",
       "Datsun 710        22.8 4   108   93 3.85 2.320 18.61 1  1  4    1   \n",
       "Hornet 4 Drive    21.4 6   258  110 3.08 3.215 19.44 1  0  3    1   \n",
       "Hornet Sportabout 18.7 8   360  175 3.15 3.440 17.02 0  0  3    2   \n",
       "Valiant           18.1 6   225  105 2.76 3.460 20.22 1  0  3    1   "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nrHoAAAAASUVORK5CYII=",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Library\n",
    "library(tidyverse)\n",
    " \n",
    "# Data\n",
    "head(mtcars)\n",
    " \n",
    "# Clusterisation using 3 variables\n",
    "# 聚类，使用管道\n",
    "mtcars %>% \n",
    "  select(mpg, cyl, disp) %>% \n",
    "  dist() %>% \n",
    "  hclust() %>% \n",
    "  as.dendrogram() -> dend\n",
    " \n",
    "# Plot\n",
    "# 绘图\n",
    "par(mar=c(7,3,1,1))  # Increase bottom margin to have the complete label\n",
    "plot(dend)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 set函数 The set() function\n",
    "dendextend的set()函数允许修改树的特定部分的属性。例如，您可以为分支和标签自定义cex、lwd、col、lty。也可以自定义节点或叶。下面的代码说明了这一概念："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**自定义树枝和标签**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAANlBMVEUAAAAAAP9NTU1oaGh8\nfHyMjIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD/AAD////xw1/KAAAACXBIWXMA\nABJ0AAASdAHeZh94AAAgAElEQVR4nO2cgXacuLJFuzvxODOJk9v//7PvxYltkEpQUAXSae+9\n1ly3MaBSqTYSNLmXOwCEufQOAOARQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSA\nBBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgA\nkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJ\nIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQAS\nQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFE\nAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSA\nBBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgA\nkQASQCSABBAJIAFEAkgAkQASQCSABBAJIAFEAkgAkQASQCSABBAJIIH9Iv349nT5zdPzj8R4\nACTZK9KvL5cPvqaGBKDHXpGeL7f/Xl4//fx+uzznBQSgyF6RbpeX988vl1tOMACq7BXpcmn9\nAvAJYUYCSCBwj/T95+sn7pEA9j/+/jp5avflV2ZIAHoEvkd6fv0e6fb0je+R4NPDYwKABBAJ\nIAFeEQJIgFeE7vf/QZjeY9gdXhHCoxR6j2Jv+EIWkVLoPYq9OegVocuUnU2cBVUQhhSeMSMh\n0sNDCs94RQiRHh5SeMYrQoj08JDCM14RQqSHhxSeUeWI9PCQQkSiChIghQlVvvp4G5EeHlKI\nSFRBAqQw8IWs+ztXRHp4SOHuKv9xQyR4gxTur/JfT5evr9/IsrQDUhip8v8ul//uiASk8B6r\n8p9fL0+/EAlIYbTKv11u3xEJSGG0yl++rP8zCUR6eEhhvMr/QSQghbwiRBUkQAoRiSpIgBQi\nElWQAClEJKogAVKISFRBAqQQkaiCBEghIlEFCZBCRKIKEiCFiEQVJEAKEYkqSIAUIhJVkAAp\nRCSqIAFSiEhUQQKkEJGoggRIISJRBQmQQkSiChIghYhEFSRAChGJKkiAFCISVZAAKUQkqiAB\nUohIVEECpBCRqIIESCEiUQUJkEJEogoSIIWIRBUkQAoRiSpIgBQiElWQAClEJKogAVKISFRB\nAqQQkaiCBEghIlEFCZBCRKIKEiCFiEQVJEAKEYkqSIAUIhJVkAApRCSqIAFSiEhUQQKkEJGo\nggRIISJRBQmQQkSiChIghYhEFSRAChGJKkiAFCISVZAAKUQkqiABUohIVEECpBCRqIIESCEi\nUQUJkEJEogoSIIWIRBUkQAoRiSpIgBQiElWQAClEJKogAVKISFRBAqQQkaiCBEghIlEFCZBC\nRKIKEiCFiEQVJEAKEYkqSIAUIhJVkAApRCSqIAFSiEhUQQKkEJGoggRIISJRBQmQQkSiChIg\nhYhEFSRAChGJKkiAFCISVZAAKUQkqiABUohIVEECpBCRqIIESCEiUQUJkEJEogoSIIWIRBUk\nQAoRiSpIgBQiElWQAClEJKogAVKISFRBAqQQkaiCBEghIlEFCZBCRKIKEiCFiEQVJEAKEYkq\nSIAUIhJVkAApRCSqIAFSiEhUQQKkEJGoggRIISJRBQmQQkSiChIghYhEFSRAChGJKkiAFCIS\nVZAAKUQkqiABUohIVEECpBCRqIIESCEiUQUJkEJEogoSIIWIRBUkQAoRiSpIgBQiElWQAClE\nJKogAVKISFRBAqQQkaiCBEghIlEFCZBCRKIKEiCFiEQVJEAKEYkqSIAUIhJVkAApRCSqIAFS\niEhUQQKkEJGoggRIISJRBQmQwkCV//j2dPnN0/OPo5o4B6ogDCncXeW/vlw++HpIE2dBFYQh\nhbur/Ply++/l9dPP77fL8xFNnAVVEIYU7q7y2+Xl/fPL5XZEE2dBFYQhhbur/HJp/ZLWxFlQ\nBWFIITMSVZAAKYzcI33/+fqJeyQghfur/Ovkqd2XX4c0cRJUQRhSGPke6fn1e6Tb0ze+R/rs\nkELebKAKEiCFiEQVJEAKeUWIKkiAFPKKEFWQACnkFSGqIAFSyBeyVEECpPCoV4QuU3Y2cRZU\nQRhSyIxEFSRACnlFiCpIgBTyihBVkAAp5BUhqiABUsibDVRBAqQQkaiCBEhhuMr/vV2+/Hts\n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\nTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# library\n",
    "library(dendextend)\n",
    "\n",
    "# 绘图dend是设置函数\n",
    "dend %>% \n",
    "    # Custom branches\n",
    "    # 自定义树枝的颜色\n",
    "    set(\"branches_col\", \"red\") %>% \n",
    "    # 自定义树枝宽度\n",
    "    set(\"branches_lwd\", 3) %>%\n",
    "    # Custom labels\n",
    "    # 自定义标签颜色\n",
    "    set(\"labels_col\", \"blue\") %>% \n",
    "    # 自定义标签字体大小\n",
    "    set(\"labels_cex\", 0.8) %>%\n",
    "    plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**自定义树枝节点**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dend %>% \n",
    "    # 自定义树枝节点形状\n",
    "    set(\"nodes_pch\", 20)  %>% \n",
    "    # 自定义树枝节点大小\n",
    "    set(\"nodes_cex\", 1.5) %>% \n",
    "    # 自定义树枝节点颜色\n",
    "    set(\"nodes_col\", \"red\") %>% \n",
    "    plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**自定义叶子**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dend %>% \n",
    "    # 最后一层节点形状\n",
    "    set(\"leaves_pch\", 22)  %>% \n",
    "    # 最后一层节点宽度\n",
    "    set(\"leaves_cex\", 1) %>%\n",
    "    # 最后一层节点颜色\n",
    "    set(\"leaves_col\", \"red\") %>% \n",
    "    plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.3 聚类结果突出 Highlight clusters\n",
    "dendextend库有一些很好的功能来突出树簇。可以根据分支的簇属性为分支和标签上色，指定所需的簇数。这个 rect.dendrogram()函数甚至允许用矩形突出显示一个或多个特定的簇。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**基于颜色突出聚类结果**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "par(mar=c(1,1,1,7))\n",
    "dend %>%\n",
    "    # 根据第一层分支结果自定义标签颜色\n",
    "    set(\"labels_col\", value = c(\"skyblue\", \"orange\", \"grey\"), k=3) %>%\n",
    "    # 根据第一层分支结果自定义分支颜色\n",
    "    set(\"branches_k_color\", value = c(\"skyblue\", \"orange\", \"grey\"), k = 3) %>%\n",
    "    # horize是否水平放置,axes是否显示旁边的距离尺\n",
    "    plot(horiz=TRUE, axes=FALSE)\n",
    "# 画线条，v高度，lty线条类型\n",
    "abline(v = 350, lty = 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**基于矩形框突出聚类结果**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAsVBMVEUAAACHzuur3PG44vO+\nvr7B5fTJ6fbP6/fR0dHV7vjY2Njb8Pnd3d3g8vnh4eHk9Prl5eXomQroslDoumjowHroxYjo\nypXozqDo0qro1bTo2L3o28Xo3s3o4NTo49zo5eLo6Ojo6u/p9vvr6+vt9/zu7u7w8PDx+fzz\n8/P0+v319fX39/f4/P35+fn7+/v/AAD/pQD/wE3/0Hz/1oz/25r/4Kf/68f/9OH/9+n/+fD/\n//9teQzbAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2daUPcPNKup5utIcATtpCE\nBAghARJg5izve87p///DTtvubi+qkiVZkqXyfX2YJ2ncttHUFW0l6V9LAMBg/jX2CwAgAYgE\ngAcgEgAegEgAeAAiAeABiASAByASAB6ASAB4ACIB4AGIBIAHIBIAHoBIAHgAIgHgAYgEgAcg\nEgAegEgAeAAiAeABiASAByASAB6ASAB4ACIB4AGIBIAHIBIAHoBIAHgAIgHgAYgEgAcgEgAe\ngEgAeAAiAeABiASAByASAB6ASAB4ACIB4AGIBIAHIBIAHoBIAHgAIgHgAYgEgAcgEgAegEgA\neAAiAeABiASAByASAB6ASAB4ACIB4AFxIs1y5V/ZMvb/5UkgrhRmY7/A5BAXQk6IKwWIFBtx\nIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWI\nFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6I\nKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREX\nQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBI\nsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4\nUoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh\n5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgU\nG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogr\nBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdC\nTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEix\nERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhS\ngEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHk\nhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQb\ncSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsF\niBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JO\niCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLER\nF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKA\nSLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSE\nuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtx\nIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWI\nFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6I\nKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREX\nQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBI\nsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4\nUoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh\n5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgU\nG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogr\nBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEixERdC\nTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhSgEix\nERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHkhLhS\ngEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQbcSHk\nhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsFiBQb\ncSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JOiCsF\niBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLERF0JO\niCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKASLER\nF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSEuFKA\nSLERF0JOiCsFiBQbcSHkhLhSgEixERdCTogrBYgUG3Eh5IS4UoBIsREXQk6IKwWIFBtxIeSE\nuFKASAT/CcluWMYuO0Mg0hT4z9gv4A5EGgmIRACRggORpgBECg5EmgIQKTgQaQpApOBApCkA\nkYIDkaYARAoORJoCECk4EGkKQKTgQKQpAJGCA5GmAEQKDkSaAhApOBBpCkCk4ECkKQCRggOR\npgBECg5EmgIQKTgQaQpApOBApCkAkYIDkaYARAoORJoCECk4EGkKQKTgQKQpAJGCA5GmAEQK\nDkSaAhApOBBpCkCk4ECkKQCRggORpgBECg5EmgIQKTgQaQpApOBApCkAkYIDkaYARAoORJoC\nECk4EGkKQKTgQKQpAJGCA5GmAEQKDkSaAhApOBBpCkCk4ECkKQCRggORpgBECg5EmgIQKTgQ\naQpApOBApCkAkYIDkaYARAoORJoCECk4EGkKQKTgQKQpAJGCA5GmAEQKDkSaAhApOBBpCkCk\n4ECkKQCRggORpgBECg5EmgIQKTgQaQpApOBApCkAkYIDkaYARAoORJoCECk4EGkKQKTgQKQp\nAJGCA5GmAEQKDkSaAhApOBBpCkCk4ECkKQCRggORpgBECg5EmgIQKTgQaQpApOBApCkAkYID\nkaYARAoORJoCECk4EGkKQKTgQKQpAJGCA5GmAEQKDkSaAhApOBBpCkCk4ECkKQCRggORpgBE\nCg5EmgIQKTgQaQpApOBApCkAkYIDkaYARAoORJoCECk4EGkKQKTgQKQpAJGCA5GmAEQKDkTK\nhH8z5HK9KxBpJGSKxIUtF7mpXe8ORBoJkSJp4paM3NSuHwBEGonpifRDZfzrvf3qEGkkIBJE\nGgOIlAV2ca6N9DjXe/vNIdJIyBRpSYazMWfDvu6At18cIo0ERCKASMGBSHkwLKwhUnAgUh4M\nC2uIFByIlAfDwhoiBQci5cGwsIZIwYFIeTAsrCFScCBSHgwLa4gUHIiUB8PCGiIFByLlwbCw\nhkjBgUh5MCysIVJwIFIeDAvr6CL929tqCog0EhCJILZIZfaqn18cIo0ERCKILNK/IVL+QCQC\niBQciJQF3LogQyBScCBSDvAr7MyASMGBSDkAkZIHImWAZs23GRApOBApAyBS+kCkDIBI6QOR\nMgAipQ9EygCIlD4QKQMgUvpApAyASOkDkTIAIqUPRMoAiJQ+ECkDIFL6QKQMgEjpA5EyACKl\nD0TKAIiUPhApAyBS+kCkDIBI6QORMgAipQ9EygCIlD4QKQMgUvpApAyASOkDkTIgN5GwQaQA\nIBIBRAoORMqA7ETC3t/5A5EIcBpFcCBSBkCk9IFIOQCRkgciZcEwjyBSeCBSHgwLa4gUHIiU\nB8PCGiIFByLlwbCwhkjBgUh5MCysIVJwIFIeDAtriBQciJQHw8IaIgUHIuXBsLCGSMGBSHkw\nLKwhUnAgUh4MC2uIFByIlAfDwhoiBQci5cGwsIZIwYFIeTAsrCFScCBSHgwLa4gUHIiUB8PC\nGiIFByLlwbCwhkjBgUh5MCyssWdDcCBSHgyLa+wiFByIlAfDAhsbRAYHIuXBsMiGSMGBSFmQ\n154NEEkAIkXKbBchiCQAiEQAkYIDkTIgtw0iIZIAIBIBRAoORMoAiJQ+ECkDIFL6QKQMgEjp\nA5EyACKlD0TKAIiUPhApAyBS+kCkDIBI6QORMgAipQ9EygCIlD4QKQMgUvpApAyASOkDkTIA\nIqUPRMoAiJQ+ECkDIFL6QKQMgEjpA5EyQKBIu96J9P8FB0TKAIki+S4jiOQZiESQ3gaRECl1\nIBIBRAoORMqA7ETq3/sbIqUORCJI7zQKiJQ6EIkAIgUHIuUAROoFInlGpEiZ7f39AyLlj0yR\n8jqN4gdEyh+IRACRggOR8mBYWEOk4ECkPBgW1hApOBApD4aFNUQKDkTKg2FhDZGCA5HyYFhY\nQ6TgQKQ8GBbWECk4ECkPhoU1RAoORMqDYWENkYIDkfJgWFhDpOBApDwYFtYQKTgQKQ+GhTVE\nCg5EyoNhYQ2RggOR8mBYWEOk4ECkPBgW1tizITgQKQ+GxTV2EQoORMqDYYGNDSKDA5HyYFhk\nQ6TgQKQsyGvPBogkAJEiZbaLEEQSAEQigEjBgUgZkNsGkRBJABCJACIFByJlAETqZ9IizTJh\nzDIqgEj9TFukMR9uzuivCZH6gUjpM/prQqR+IFL6jP6aEKkfiJQ+o78mROoHIqXP6K8JkfqB\nSOkz+mtCpH4gUvqM/po6kc68AZGGAJH6Gf01tSL5in6INAiI1M/orwmR+oFI6TP6a0KkfiBS\n+oz+mhCpH4iUPqO/JkTqByKlz+ivCZH6gUjpM/prQqR+IFL6jP6aEKkfiJQ+o79mbiJhg8jI\njB6hZoz+mhCpH4iUPqO/ZnYiYe/vuIweoWaM/pr5iYTTKKIyeoSaMfprQqR+IFL6jP+aEKkX\niJQ+CbwmvxwJIgW6oSUQqZ8UXjN8/EOkQUCkflJ4zfDxD5EGAZH6SeE1w8c/RBoEROonhdcM\nH/8QaRAQqZ8UXjN8/EOkQUCkflJ4zfDxD5EGAZH6SeE1w8c/RBoEROonhdcMH/8QaRAQqZ8U\nXjN8/EOkQUCkflJ4zfDxD5EGAZH6SeE1w8c/RBoEROonhdcMH/8QaRAQqZ8UXjN8/EOkQUCk\nflJ4zfDxD5EGAZH6SeE1w8c/RBoEROonhdcMH//Ys2EQEKmfFF4zfPxjF6FBQKR+UnjN8PGP\nDSIHAZH6SeE1w8c/RBoEROongdfMa88GiBSZBCLUhPFfM7NdhCBSZMaPUCPGf02I1AtESp/R\nXzO3DSIhUmRGj1AzRn9NiNQPREqf0V8TIvUDkdJn9NeESP1ApPQZ/TUhUj8QKX1Gf02I1A9E\nSp/RXxMi9QOR0mf014RI/UCk9Bn9NSFSPxApfUZ/TYjUD0RKn9FfEyL1A5HSZ/TXhEj9QKT0\nGf01IVI/ECl9Rn9NiNQPREqf0V8TIvUDkdJn9NeESP1ApPQZ/TUhUj8QKX1Gf02I1A9ESp/R\nXxMi9QORRnlwULy/bm4iYYPIyIwnUl439y3SmQUQyQyIlMHNvYsU5NImfR45xf2uM06lbgdE\nyuDm+YkU5DQKZx8gUpYPhkg/IFJcIJIhEMn1O8O+aAFEyuLmrEcQKeQXLYBIedzca6RDJP9A\npDxu7jXSIZJ/IFIeN/ca6RDJPxApj5t7jXSI5B+IlMfNvUY6RPIPRMrj5l4jHSL5ByLlcXOv\nkQ6R/AOR8ri510iHSP6BSHnc3GukQyT/QKQ8bu410iGSfyBSHjf3GukQyT8QKY+be410iOQf\niJTHzb1GOkTyD0TK4+ZeIx0i+Qci5XFzr5EOkfwDkfK4uddIz3XPBqeSG/JFCyBSHjf3GunB\nRQqzixBE4oBIxniN9NAiBdogEiJxQCRjvEY6RPIPRMri5nnt2QCRIgORDMlsFyFVJC+7OEIk\nDohkSP4i9f+OEMkdiGRGbhtEQqTIQCQzIJLpTTx/0QKIlMHNIZLpTTx/0QKIlMHNIZLpTTx/\n0QL/IuVwehdECnBpDUTyQZgghUgQCSIld1eIFODSGojkA4jk/Y4QyfQmnr9oAUTyDkSCSD6Y\nkEixBksgkulNPH/RAogU5zYQqQ+I1AEieX8iRDK9iecvWgCR4twGIvUBkTpAJO9PhEimN/H8\nRQsgUpzbQKQ+IFIHiOT9iRDJ9Caev2gBRIpzmxxEOjMFIqlApDi3yUKkYV+vgUg+gEjenwiR\nTG/i+YsWQKQ4t/ElkoeGV3iR1A0iIZI9EMn7E5sieQhziBQAiBTnNtMSSdn7GyLZA5G8PzE/\nkbqnUUAkeyCS9ydCJNObeP6iBfJFCrjQIZZIS4hkeBPPX7RgAiKFe0I0keq9vyGSAxDJx11F\niLQ9jUKWSHbbgEOkUe8KkUwvGUEkHx83r7Cj934WQKQBT2C+EqJXZh7Ekxap9wr3q3uASAOe\nwIkU4InmQQyRTIFIQb4JkSDSAJITyWZnHqPWEUQyvQQiDSA9kXxfDZFML4FIA4BIbg/WfQUi\nQSR7fOcMQCQS8yCGSKYkJhLzsatTckUa9E+OeRBDJFPyEMnqY6srLK92D2vnW/t+1yVE0nxs\ndYVlMoU50xXJw729/O5mGpsHMURyuQQiuV6SjkhGH/c5YLXsHCK5fFMPRBpw74RECvmxyzYR\nnd8mpEheMl8nKZJdnwYihflYf0XntwkqUsCPzclSpJAfh3NUlkj6yslwz4bkPzYnDZFC1jE+\nPh7/RcYzhhNJd7HpLkLJf2yO/8wGEAI6bBNF3SBSPhApD8Z2wwqIBBKF3bE4SSASSBPN3t8p\nApFAmkCk5IFIGaA7jSJFIBJIEoiUPhApAyBS+kCkDIBI6QORMgAipQ9EygCIlD4QKQMgUvpA\npAyASOkDkTJgLdLV9diGGAKRLHn8sF+udtg/fGx9/nCws/p0r/NpwT97xeX/UDfrLJpoLKbY\nO+x95MvBSfGf150Tgxd8PVjd84F86vpr+/Rb9V3Mf/x0uFe+yE7rd385mM0/LJcnO7P5Yefr\nr4fz1f/OD1+Lv6xFMjmwnOTbVfNv29ucn7cvu7kqfnR12/jo9tOX4j93F1+I7yt/UUViF60y\nP7D7ePn2cXfxc7n8dbS7uCf/Xyi+Svx5sWhe8ufnaXnb0/s/zE0MGCDS604z2OvPX/bqT1/a\nX9lTr97CizSbzfseOZ+VcfuwurR+JHP167ySS33qoboQqvrj+oO+i9mPPzRepBasepGTD0SR\nrH6hWfnA8tdZi3RxdseY8vmCXPR9Ta4F3/zttnP1ZXXh2Xlt0u35WengzVnj0+pr6y+PKtL7\novjbr5/lh8dLEkqkt+aH70eNOzM3MWCASIez+T9P5Z9eHuaz7T+pq/DYeSj+IX35Z2drQMXJ\nbF5UBKurtxUHv5LvYHPt43J/c3fmkcud2UH5T/fycW+20/eCh8XTX0/me9Xzm7/QhoftZ6xI\n1MXcxw+zg5fi3faXT6va56G+dvVOh/Pi3V8PZ606aa/6hVYfF96tRbq7uvxGe0TvnlB7dLP5\n6Ka1mvWiefWXs8u74vtfzj5tP7s4+1S5++2yvthGJD2ni+fV//5ZfOy/lLz6fndVD90vdj++\nL9/LPxNsnHluqXi0bNxk8ftv+ae35wVzEwMGiDSfPW3//FQrc9j4x3Vv9qH5jZ31N57qaH+c\nMyIdbq/dW75urmce+dB4zP5s23hirp5XT3mZ77y03Zivvro3e1nVqHVDkBWJupj7eG/2Wr3D\n6jUf6yppvr53+cP2vznbJ5V/2DbtmN1Gzs++EOG8+vjrqpq5vb08q/27aHr0rX31XaVFffeb\ns8/bH1+tbuZZpPvdKoD/GoUvcfWilGR39738z4L82rbyaVY8R4023GJ93+re9E0MGCAS033Y\nmdWNq5d2i6UdHhWv++sGoNK0a/xh8xfmkQdVLHYfyVy9+dPr3l77muLPH1YVxlPjrVmRqIu5\nj7evPydehGo2rhyrfqNXI5GYzlPx8edVbfT97NLw6o5InxptydvtTZxF+nPa/vs2xpkdf9rX\nE1fv7jb+ztyE7CNxF3A3McB/jaTpntc1UvOf339mZSXSEWnevHbzM7tHMlfvbLXb2VPceCja\nfSZ9JOpi7uO1Fq/rfk/9cX3T13aNtKrWixpt1VItWnx9w99XdOepCPKborIyGqW4WNdI37uN\nuO5frEW6J/pIBYttHdOuB+jriasXDZHe+2okjvFrpFUX5KGqfFpdEI1IRB+p/PrebP+1K9Lh\n9trDlWp72kfO6UcyV5/MDjYPnu01n1q0Cl9WrchHE5Goi7mPKy1e9lcPfj3YPn3bRyqG5jp9\npPawTJ9It+dk56lojd2utPhmJNK6j3TTaCee24jUqC/bItVePLd+xaJ3UjSxVj2Tn+2PyeuJ\nqzd9pPv39Z8r2BEOktV9n9/KP43VR1ruNTo3O9vGlW7AmBu1+7AK+e7YcuPa2VY8+pEHjZ79\nQ2NYjL66GBDYXtx8avkK5Xe2sc6LRF3Mfrx+kfnrsjmsqBm1W9XTxcD9XvV7b0UiBqg7Mdz8\n+Kb4azkW96l1OTPGd7X+sG4HfqpHKVY324yh24q02P29PN59ezve7Y4uH69Dvd3k465Xr2ZG\n7ViRaLuOGx8fvS8dGTaPdFhO08z3PzR61tqZlzI8iHmkp51Z99LlQ3ltoUhjLIF85FMdnS/z\nWePu5NWr67euvRy0R6mXhZXNyoEfVSQu5j8+Wam0U/wW65mh7dO5eaQWG5GIAWqdSKsOUmnD\n2XXnU6arVWh6dvW1/uB7/aTb88ZgQ4sfKm2Riqj9uapd/qqDy7+LCZzTTkXFXq9ebTCP1L4z\nWU39uS/nkRanP8eZR2LgQ0/Lgd0xSm1WjbgPRX/o6cOcnKNyx/G38ctaJGqA2gFmjI/i+uz8\n8/fCqM/ndUXlItLz7i/jnrzt9db8OT7tv8iWZEQqOei/hKae8XS+RTJUw5TNAlyLRAxQa2FS\niphvk+MVde1l5W5LpNNVU+1t92j5x1AM5vpT5+6Lwvuu2cyVDR5EOpnPOpk5FjTj/nFOadfK\ntWEbQy9lDs7+h04qhZaBFUzZTD1ozLv2/xPS+ZDOVWJFIgaoN6PWZP3AGMON8V3eEJ/eXhft\nyavP3W4Zwd11+bxvF2fnLZGeCyHKjogSvr+Lj09/tz9krqc0fP+46hs98z/naF37fl8M1f08\nWt3qN/eFfoaI9LQ/m58s6b4yzYedbpTN5tvey0H7LlSujbZ7bo0S6+rradiMZDTz8uxE4nOV\nOjRShDoD1FqRmJQiZoyvGIG4pjMnzDgvn36zGW6oX/9nEbarkFeqlE03v9MXoq8/2lUGAqrB\nhvXog4VIv5qj3G+rm2zuNE6K0FMZBodFMsvL/sykTvqgRtnepjFWpDg070Hm2miSahzoxi7x\nenyG6yE9lG/zRDZXafVp62vtPtKNaSeHSSni+je3xWjexWcun69x37rqabxI8XaFTufff9xd\nnv23QWms4rmoTZ4XRYeol/fT4+5YwH3xxfdfizL8DUSqxxoa4+0fd0/fV//z8a0cuxhj+Pug\njOpqIvG1keLGJoUvqaBbNQyLSumgm+FK5tqwSTXkI/tqiO5H1OuxtcZcTXfqp5u+UP5HzVVa\n/W2vmcG3GbVTB6i1sC0+dqDg9npVrZBNvGZDsVn11K9yeVY0/76VWUXfzv6nQWkcbadYj3qu\nLCCG3KoJ2VWdcvRmJdLRr9aH79s0I25W14DBKUJKjHEZ2kum+fK6UuCgUx0ttbk2yqwO88gT\nS5Go12NrDSLdybZpx+YqFdkXq7q+/jehOY/UGqDWjqHph9YYvnBXbz9uVz1f2z+/rvL6zv5T\nvXgR3ezcKJMixCx2IG6z+dP78bH7GF/5vbWS46QIVf/X/1MJ0ExapTO0l8W0f7vJsuZDq6fR\nuDuRa1M/+LX/kU9zbT+qG+vU67G1Rp1Uu311W5HYXKXigUV/befD5gI+saF/MNqCqnX3lfzZ\n9t7tquey/fOL9TytiUhHdIoQudiBpO42HR07O/CxeIuf1au8u3eSBjXtDjb/P78eNPN1yAy3\ngpf5nrrWr1i+tKqR5p1ZWibXhkyqYR/5ZNWPol6PrzU+lH2kR72rWthcpfWHq19028QbJghN\ne71fZdH5NTc+10kR2lQ9W3UvCr9uq2Hyu7P/YfD7E30kdrEDc4PNuN7b7rFR5isxTLjS+P7v\n8nSxMun5qJvFZM6QhX3zRvOmjl5NZgP1z/Wq/bXuI+236gMy14YZteMfedJQTKUTvNTraTJc\n+6qffrhcpS0n24+roN1yabbq/Oul0hT8wa33K0btPmlG7Toibaqe7T2uixbfOqnoy9n/rn8J\nfgKIGLWjFztwFdv99s/P3fqOzHwlhwmfF+QghCWD5pEON/o0J3U0NRIReOyoHZ1rQ88jaR6p\nxUAkttZgRdKsplfgcpWqj8rW3VovBH8AACAASURBVPpGHZFWVUcryukkvEtycIJY71fe/ZJu\n0ikitaue7XvcnW8ftepn/Z/699C0uaqkn87sDXE920L8u61v3j62vkZmvnLDhL8/lv6e/nxj\n37QX/5kNTM41Az+PFO6RVnVJb63RQbea3oLSovnhdiCzjNVP50Xo35yvWlVXrQQ6Ognvy9nm\n+tZwObXe7weZ2UD3v9pVT53xcLfJ6ltdet34VYgJoPCQma92w4R2BNhFiMm5piEzG+b7J499\nX3R/JLsol0ZbayiQK0Xsm4HFqN1Bs8NWRfD3MmKLhXp3zUlZJgnvYnt9a005sd6PmdWlRWpX\nPd8J/66+/Wi8OjEBFB4y87VvJeEQhojEzVWySeG9wXSwubb6+oOS8GP3yLk6tFHehFmUa9cs\noy8mVtP3j8OrzPY6992EeyPum3UMmYTX6dU0P+6s99OkRxC0qh7mmsars6N2TIpQma1DXa9k\nfx81uzTqGLqS+coME1b8WrTnlywZONgwM8lw2V5gGkyvjycH66mh/cN/GsMFto/sDGBsoRfl\n2jXL6IuJ6aVl7zi8ivLalS+bGuacyrdTjLloXl9jt95PR1H1DBGJThH6yVyvrkfardb6bf7S\nvJjMfKX7SH9Pdxe/ltqtiAwYtEKWzXBx5Km9F9zJwV5HOrtHzmYP1Ui5Crkol1nAu72bycX0\nanqrcXjyn5wiOK+3fZ7rH1+bIwhkEh7bR2LW+w3ffvLb5yr14uq61bRjYfr+TMbQ/fbqbT20\nEqm5LrZ5NZ35Spn7t/zkvtiK6O3UKFmJZNCeDeV/qAyXCiO5Hley7JXB97RPfOGhNVTGPZIe\nzFtdUKZNtPbL2kAsyiWbZdxvw1zMyUiNwzNdJ1ak5ijc2VknzY1KwqNH7Zj1flT9RGfV0dw1\nNyi6pIq8C9P3ZzowxJ4Nu7vvp7tHb+TX6MxXYpiwzK+7r2767j4K4WEXISLDpX3BBmoD1scq\nWp6KvFdlteljlY7d+0jd9NJTuc725EmpmNRFuVSzjB0noNtwVs1Dm65TFaxVilBRzTQ2yvrB\nJ+F9VVOKWKhccTqrrlX1bFnVl1+rpuTtyuj/ar7882kR5afdwWWm739Kj/Ixuwj93l3XIoNS\nhJb2KeQdBojEzFVyoUdvwLpXZb7uPXQ7NC8n5fDBTmuROPNIJil8fcHT4ZwO1O6iXKpZxg7x\nMW04fjU9gUXXqccCIgnPFiJXnM6qa1c924vPGwN431uZDcdVd2d30TGJ6fu/LchRPmJfuzLs\n3453j9+Xio3GadzV936vbRwjaZWZq2RCj9mAdZOGOp/t122f14cy9ucHD516hHkkkxReX/B0\nsr/jOHTNDfHpO1Q6GiP+TNeJ2Ml8iCINtMsAlY/prLp21XPdvHV9s//Uv82vVaAX0fqru7CP\n6SNxgxPqTqvrC37uLn6zma9tiE0iPha9o4r3cZZRcHOVdOgxG7BuRNppVjyzsjVGLXalH8kk\nhVsPgNDNMqshvn3KDH4ZMJnCRO1krtVDs4To2+XZ+XX9czuR6Ky6dtWzHRBka6TFqqlWxrXh\nqB0h0m6b+uPqv3+PVo62707PAlPbFhVr+rb3c66Qhk3IcnOVVOgxG7C2HKg/pMfauEcySeH2\nI4l0s4wc4mMuppO+7dI3qJ3My/hk9tEiV4l/vywGCL6XV5/3L9YjobPq6G0jyzHFKrGi00eq\n8nuWqkh/6BQhgh6Rimpl0b47OQtMDPyVH2/0MdqKiCHM+UhE6DF/YUTiaiQa3U6LXqD23aPZ\noVaK8AmFFORO5qVH3JQpsUr8W3nZ9WXVvXEc2aaz6pgaaTtGWHDx/+rf52hdIymJObuLIclt\ny5aZz4tu045oH3Jbu/og1EFjSujZiPT6cED3kRjstnJgB+LIZlmFOsTHXPy6T6wUYZcBk5A7\nmVcRzI1Bq6vES3muq7zURmbpWZvGLW4+FTpetnyks+raVU/D0W/X5WDe+dXnb809G9Z9JHVF\n+ceiVfebaIIxo3xa3n92xtAJkVJNEdLSDT1WJCaqyVE7DtOdFkvYUWdtndMd4mMuZoazmWXA\nzC2Iv1QWaGqPzirx/u1QWyLd1tXJZZ34ymTVtaoestXY3vv7lOwKFZQpQh+7a4C4UT4Xv1rY\nHX9hR8CjLw8GiVSgzCP5gRt1JptlHMzF7O9CLgMmIXcyL8KT2UdrS3OVeP9O901WxlzcFDe/\n/XrRzCdisuoaVQ95u+5pFM98V+itSKxr9024UT7OLwvsDmSyItoZslpjeB6IpaODYUad6WYZ\ng9XF3DJgEnIn8yI+mX20KjqrxO1Eum5tYvJZvUCTVdfhy0V37+8eir3pWi0tZpSPHUVn6NRf\nzHiFNwKIxG17aCsSkWtn90geeuGs1etZXcwtAyahdjIv92xgxq1/UKvETUSql5qXowqbe5lu\nUtShekjZ7DMX6W+Z6X3cGkRjRvn4UXSSbv2Vn0h2Gdr0Lbjs73CPrL7pQyRidYXdqB2xk3nP\nQWPEKnF+VIFaas6MaGspqp6rxrB7+bXrs2LSqitSOcqtdIWWz/eL3d2j++7nzCgfO4pOYlt/\nDSbECtnBSeFleJLrkYI9UvsqNoJR87S2y4CVncx7zkciVolrRCKWmrMiUVl1jaqn2XMqPz4v\nu3EdkejTW8pK4vTvUoEZ5WNH0Uns6i8P+4oPFal1jH1Jb1J4P/oVskEeyWG7Jo/MHNJscL69\n5byZstfZybzvoDG7+VZiqTkjEp1V16h6bq/rEfnGgqjuQWPMhqrPRe9oVSN1B8DpUT52FJ1E\nX3+xh3C6M1Ck9jH2Jb1J4QOxfCS1n/fTYVVv7HTzEohmmeWaPP1SjJLWeRmb13rRlVTfQWNb\nOhts0TBLzQmR6Ky6RtXTXPF+Vi3OUEVaaHZK+FO07lYytT+lR/m4UXRymS1df3GHcHrYVmKg\nSO1j7Et02x76wO6R1H7ejc/aI9Jk+hwzxMdUU9zqCoqHVmWn2fm476AxZoMtjUjKUnOyIUjn\nMLTW4jbvcfX5y02ZI66ej9T+Q4s/3VE7FtovOmGPrL/YQzg9bCsxUCQibnq2PRyM3SOJ5OyH\n2cFLkce2v3w62Wlu0c8kdFsN8bGrKyiaOy23snY79B00xmywxUAsNWdEoiuqRtVTSN29hyJS\nPQ1KnO/1XgzbHblvJ8dusUXVX+whnB6G8waK1D7GvsJ2A6ugjyReYK+6wVOR0vbYrJIMmmUK\nhY9NbFdXGBVQ30FjzAZbDNzRsipcjbSteu6uG6MN379/+XJ1pYq0/LmeBmUyG+7NKgNmQIDd\nYouov8ithaofjC1S+xj7NXYbWDV4NJn6t3sksZ/3JnbLOsNk0auW184ZgZ72tWuhO2hsU0d0\nej066KXmBHRWXaPqYRLLu007ZganzLUj9gimdxFiYtwmf47cWsgTQ0ftvMQNdaaYp0cS+3mv\nq7TX9ZhF/QOrZtkWZR7JfIVsE90/IrqDxjYidXo9DCZNvwZ0Vl1d9TSXOtmLxGR/M7sIMQMC\n2i22OtgewmnD4Hmk5jH2Oop4Y/oV5JliHh5ZPVZ5ZFWlveyvqpLXg2Z94rTo9cTKOhWTf0T6\nDhoz32BLs0k+SV9WHf0Qw8wGpknHjG8zAwLsMtvN3Rp+aQ7hHJwQGzHXjhWJPFOs/tbAx6qP\nXFdp89fWGPrSrq6r7/uh/2Ieo39E+g4aM+/1lEslLKsla0xFIoNd04aj+zHcMtvqv+2zYfSH\ncA5KiB0okmYJjzlFjCtnitU/8v/Ik71ifcayPatbYNEs2462NWsvYrOF+vr1H1ozr7p/RErK\nFl9rHona40Tt9XBrysvVFmfXxEbDLsa0R/W2WIrUOQiJ3UWIGRBQltnanQ1T4CGhyNfwtxGM\nA8VNWmeKzdoMeWRUqM0WNjAzr9w/Iq0WX19mAxPjTIrQt09Fj+eLeTpEN6uOFunbOSfS/UI1\nQBPszC5CFtBnw2iwTIilGCiS1RIezgHlTDHtNvd2j4wKtdlCgWbmVflHpKLd4nMQSU95btKn\n3iYenVXHTDr9uLtaLwrsiFRPgzajlA92tuohYUbFye8ybUnbhFiSgSLZrcphHFDPFOO3ubd9\nJOujgqZZpt6U/Au52UIJP/NKHkzYbfFVgUlGryt35cILE5GUrLpG1dN5la9n5exSR6RdLjnO\nvDNUBTrpl03oM21J24RYksFNO9M4LeAcIM4UY/bAsn6k8dW6Zlk3B6+10UR9Y3KzhfZ3FMiD\nCbstPp1IzU+vuksp1n84J425oXxUkxnUrLq66lHWRV2eXd2pIulL3gCNSKZpctqOk11CLEkg\nkdQMbd3VFMweWLaPXNNNQFDhmmUF3dE8RiR+ab0G8mDCTotP17Rrt7O+tX+0Dm/CGK5GUkVS\ns+rqqke97+ez8xulaceG+uBBZz5NTpnV1Xac+G0lTAm0HZeaob1c2lYm5ntgaR65oZuA0IVv\nlhHzS4xI5GYLCkbpG+0Wn2kf6XNda9y0/OpM4Cp9JKbbw2TV/dhWPUSV9l1dan58zJiiDjpr\nqh4G5mpyVldzQ822EmaEEYnI0GaYtWn9TN0Da8Aje+6ka5YpOXhs047YbGGLVfpGu8Vn3Edq\n/KC5lOiiVVHdqKN2TLeHy6qrpD0n24aFeR2RnhkxiEFnRiSNAYxIZCPNw/o9lsEiPZSHsey3\nqwHzrDWdSOoeWO6P7EtA0DXLlFszIlGbLWwhZl41c9TtFp+hSKtgV8647PKtmEc6V+aR6G5P\n42lqVl1R9TBCt0XiDg6zGHSuLnAZV+j/0BNecu2KBNBWWFMZ2k06zZv9sun0OKdbX91PrR5Z\nx2knAaFjo65ZpuTgMSIRmy0030+ZedWJ1MKsaVeEfN+INp/ZQHZ79Fl1n8xEYnvw5oPO9iKR\ns7rswAQ7Lm7OQJFOZntl5J60uyBkhvaSa94cbgN1fbVmabbtIzfP6w5qd23UNctM+0jEZgvN\nF2HTN3oxE+mK3TOrXjh7dv6Zm4jluz32mI3aaXY5KVks2h/pRWovHydnddn1e+y4uDke1iMp\nWdRLLmuNSSxTm066zULsHsmg2Khtlqmjdlx7tLPZQueXJGZeCdS7d0UyWlH+g1o4q0095bs9\ntnSadkw9wAw6E1GtE4lePk52ncgP7ROKSDykCFFRTWdoM4ll827TSbt9ld0jGVQbdc2ybg6e\nvmNHQ8y8Mt/kRbJaUW67cPaHrttj61cr1e4nl/KjDjozUa0RiVk+bi6SfUIRiYcUoeL/a7NF\npUzz5rCqgVZNp00/RrfpvN0jlyerq152uiu5CRs1zTIfEDOvrRZih1a3cS2SrRh2C2dLuG6P\ndUXV+FWYcbUCddCZjmqNSOzycRvG30Vo3UTqLuExzU5ds2k61V0Tzabzdo8s47dM3WuZRNnI\nNsv85PapM68akdrdxrVItmJYLpylbkCOipvQ+F00IpEQl+226V5NLh+PzNBRu32yZ2Kanbqh\najq1Ok78pvNWj9xbPbKw5Z/25YyNNNvdkD2jEanTbaxEshXDfOEsA59Vx3F3XUzbnl/f+S2p\nHpF0y8fbYxDk1l0rfq1akW9HA1p2fuaRlCU8xtmpHNpN520eWVU7h0q80jbSFPPCh4/919mi\nEanbbfx3tfe3nRjmC2dZL9isOprb882k0/81KgEPKULc8nFyDIJeBLheOlsu9hirj8RgkZ1K\nYrXpvPaR5WRRMUjYjVfSRoaXYpfJnQ/OTTxmwkjbtOt0G13EMF84y8Nl1W2rntanl2ef7sof\nnv0vk3Jh1qXSm58wMMvHyTEIbuuu1fd/l4Pwv93bh2FEshvS2tYLm6stN53XPXJv9vRQ/Kv+\nz8BtfV6Kc9Zdm3j2IindRicxjLcL0kBPL9VVT2sLiHrvu/Wp5po2Gbsulc2EoKGXj5NjEOzW\nXdVs1v2I65EYmKhmxyDWUW40j2T3yHJN3Yfix4P7OSemI92mqOPcDTrdRo0Yt5/KlUJ3F9zB\nmAOhppfqqqc1pbVecvHjzkgkJkVowFqGGnIMgt26q2xgFnXXKCLNdXFAwk6cHMxaB0mwmQ32\njyxG0gt9d6z3x2pTte4sbmKQ5K0VqQMf56vKoQzmm2718ONqSE3UgJheam+7uuX6rDwK7dtl\n81RzFiZFyEtGHDkGwW7ddbz797n4bJym3b51VPMDAntlW46+SUMr+0dynBB767OUFs0PjQ6Z\nobKgPNRkfJhfVJVDGb7t5RJ2Ywy6ZYDK9FJd9bR/sNkI79Lkd2JShJjNT+wgxyDYPlI5D/yz\nsI7Yr9KMASKdzHYO/+GCi8zQ1gwI7BEjaz4eyUDtrc9SOHegvDg900tmQek6Q4aw8X/TOKny\n6qy1wdBFz5mztEjUMkCFuurp1Hpfi32OLr/86P+N2BQhy81PqK1VuDEIbtRu+WtR9rGO3Bck\nDRDppZgxnc0PqMimM7SZyqT8W2ESGWpPjTaSyyPXf+jugqUbw+g0y2Z7RJOOmekls6AcROqe\nRlNG6ZcLdUrnU8OWzqmVd1eaM2db6JcBUmyrHubnRr8kvS7VbgKX3lqFG4NQtu7yxrDBhqeT\nsrGlRDaToa0TaRWC9Vb4jysr9sqZlKf9TvxZP7L6L7ELlgqz9o5sjzIzvWQWlL1ISo1ZBOdn\nam5Uc2qlxVwqvwyQY1P1tKh7ZWa/Jrku1U4kdmuVyAwftXv8UNYFnX/w6QxtmuqiYq34+urH\nKoSein2FqUknw0dqdsE6pHprVLOs3Snr9HuImV4yC8peJKXGLIJT2aq4+tCHSMp33ajvYf6r\nGvN+XwwRLO7bPaiQi/Vs8DL8/XpI1DGESPpNUte7LizXHabD2V5hAjMja/RIzflDVG+NapZp\nRSJmesksKHuRlGvZUP/UyGC9OTNcXzEYZkCw7pWZ/6qmvC3WI3zt6Vtqa5W3Vb+pK1wFcyy0\nXSVIEqZGYjK0TUNpE3jz2T55pPmwR2rdMF57x8z0kllQ9iIpp9EUwXlNDR58rwe9b8/P1N2M\nLeg7WLMBt9h92yvr+wW1E0xkRtzx7sdCjff7znll6tYqb9XwA7GPt+ZY6HFF6umwdHNC+zZJ\n3XTyN4FHnWJn+UgCrUhma++W/EwvlQXFPpFFOY2mjE5y8OD67PxzsQXD98/n6u765mpoDtYk\nYAYE67bkf+pXJ7cc0Ymk3xa/25hTt1b5uHv8vnw/VvfxZo+FXvPnmDhT0JDBo3b0eDSdE8ql\n4HU7+ey/4PaP3GIwQcomp1OHNNvM9NqLpFytWdFQj0F0M4ds1GAP1iSz6pgBQVIk23/lmdme\nxboN996771Z15Zt6YJLuWOj1vcfYRL+Y1HngqhgyJ5QJJqWTz4pk/0ibXbDY5PQQp/DpsRHp\nx+11YczV564u7JmzJMzBmnRWXe84RuN3sT0ynMmIu98tp5f+HLdHtInaZa2UKjCbIqReYU3U\nzAbmaqWTz4pk/0ju/CFyX1YmOd3mADJm3mowBiaYqsHAHKxJZ9XZiERuOaLdqY6+pqfFp3yk\n/kR7LHTBL4Nj/xii5toxKJ18tilk/0hmm4iefVnb2BzSzMxbDcZFJPbMWRLmYE0mq45j3Str\n7tlAdoU0i8fZjLhyyO24UwERW6uwIrHHQtdv6Hy+erQT+zQonXxWJLd7EyNx5lvBLpXlqso7\nbj7SzFvZ0+mWuSR5s2fOkjAHa3JZdTTrXllnOy47kdiMOBp1axVN044Z4dh8cuQ+uetfJG2t\nQebD8Z384Y9kRuIYNzb3azfLyEOaqedp5q1s6XbL2CTv9mrwVrCzZ87S0Adrcll15IDg+okG\nJ/bpNthiM+LoGyli9PoycKSbxL9Iun4MnQ9nvgLd/pHs+UPEvqxcs0zXR+oec+GpRac8kk3y\nvuJFYs+cZaAP1qSz6ugBwXWvbKBIPRlx7V0YbEQKiX+RNBnaTD6c8Qp0h0cykir7smqbZbpR\nu75jLtzodstWcckkeX85u7j+yg1vc2fOWkFl1TEDguteWVckYmsG+02ImZ0gffD8sVjcfnw/\n5MRN/yJpMrTtUvC8PJKTVHFD2yzTHdLc/V2oOSdrOk3P9k6rrSTv209F4+78EytTEJgBwQuy\nRqK2ZrAXidkJ0pj3+/Jhf452F+2e0Nvx9s7c+TMGBBls4LIPmBS8kI9kIfZlpd6qd4F695gL\nP3NOnW5ZZ8viTgvu+5eyDRdGJjqrjhkQJPtI5NYMbPPr7WMZ5u9Kv79vJ8g/PVkJVares9L7\nel/sHj2XM7i/j9xHv8ON2lnkw4V85FDYhbF1/dU65sJmzklD+zbdvb+JAbRvn8teS3tx65dV\nZ+r2wnBdxI/PxGonbtSbGxCsemXd0yiIrRk4kd4W1RzPs5Irx+0EadjiK3QuXmbxt8geavS/\n7hv3O05z+FvJ0Cby4bxNRtGPfDgommx7prvSqc2y8utUtbRtBraFsZlz0tGq2DoiMUned9cd\nB8otS8pRPROTyNVOXFYdOyBY9srUM2SJrRlojqrU1DKDoZ3Hw+wEadriW1VmxV1LU/40XTza\nrYV9S207riVTPaj5cP52YSAe+bK3vXF3D3FyoTjVLCv34ZodklnoBOS4ugvNblkVmNokb6pG\nulxdV1QZX42G7ZhBciarTjsg2BbJ5sjw50aVcLrbGrdjdoI03fu7+tZ9dZU6o0X9xYqofSQi\nH067C8PAR77OZztlZt7LPzsdo8mF4lyz7PGgrHmM9ock55yGUgUmm+TN9ZGqtte1RYoQ+TE9\ntK4bECT7SEYTrB8beQqd6oHZCdJ07+9KkSN1rjZZkXQZ2tzVujECg7Rt5pGHjaplr92VIReK\na5plZZvvoNnEY2ZvPfWR2nSOvmyNOFejduQQeDljWqz7MxLpqm9lhPkK2s6oncWR4bqopndh\n6Nv7e0PZgnurJHxvDiokK5I2Q5uCqb8s0raZR+7M6hu+qFsrKAvFtc2y13JLLvXi7uxtiEzx\nddOOTPIu5pFu6N2CLs++3xSNPbOm3e256VYpNI0UC2oeyWzLkYV1VHN7f3e5LwYbPlYdqc74\noe0jSaJlNuh9UHtUXNq26yPVFCFloXhfs+xhc7F29lY352TETPltdEdfajIbyr2BPheVisl5\nSi5VD/MiBpkNDB8bQwbPXI52C6LFR44Ivi+2leKv3XVaLH+1PdFy7XqXW3cG3Ji0bftHUn+h\nF4prm2WtGsljUp2KnUiaXLsfX87LBLkLo9QGVqRuVh3zxEaKhbtIf+tB77dFPdhQDfzRwa62\n+Gg13jfX7LZbh8mKxKAXSa2RrDZQ0D2S+guzUJxvlmn6SG12iONjnWje3+ww5kAoWXVMHdhI\nsahFso7S+93Fz6K6+Ptz0ehT6URiOF2vmFCXvO6eDkkF4khAJLqPZLWBgu6R1F+4heJ0s+zB\nYtSuuNKLS9FFYjYGUrPq+Oy+zfDhAJEaS8edV30X1Gv4qB0jAjC2SOwY3+C1FZ6WNT0W80hz\nah6JTKp7/efAj0suIn2/VrftLjA6BZ3pGqlZdfrsvmJCy7RpR+5U93Zf7iH00yjtjU0o6l9V\n7pmxRWLH+AavrdCKRO6wR4U/m9mgaQc+VueSDXPJWqTbIsWnLZLVKejsxkBEVp0+u+/OUCRm\npzqGrRGLeuyaTyhacMtsQzG2SHxmw9C1FQZvo3yohv9szhzUp58weirq2UEzSXYi3X0tEuUu\n26NzdqegMykM7DJbMruPrJG4A1q5nepoNiK9NeoYPqFo1dcqHve8cM+esyOiSKQxnnPtTCF3\n2KOaZeyQnDap7mGPqazMsRHpa7X4rls72J2Czoza6ZbZdrP71D5SAXtAq3nz67nV0zqqP2YT\niti9IEMxtkgjwe2wZ94s42dvXz+s/nXYeXhd2WSwIUTv/ZcNkaj13Tefiti9/q623+xOQeeG\nv7msum6N1EixaIvEHtDK7FRHcdT0aOujJqFos8zW+bwjW1LY/EQhvHS6u5s1y7jZ2zIxbz02\n4fbq6m+/EYla331eWPTtBzVYYHsKOgORVUf1kRopFmr2N3lAK7NTHQO/7xb785hApO6PDJtl\nTB9ppzlQ7pa4yopEru/eniir2mJ7CrohTHYfm9lQLjMnD2i12uWEQJNQRO6THJIkRSrZLwP1\ncR5iSwQWi2YZPWrXOD/ZH2uRyPXdmhrJ9hT0sqvVv8MDk93H5tppDmgld6ozR5NQRNZP1MCf\nL5IV6XDbdAoybEdi1ywjZ29tsnWNWYtEr+9e95Goaoc+BZ2j7xC+Dbp9iyqUwYahB7SW/Nx2\nlDafMAlFBeQ+ydTAny+SFcnbCjkGYjrVQ7OMvvFQ1iKxI9HMqJ0dX87Oi1Hy5vAcnVWny+5r\nmrR9/eEHtBYQu+UzCUUFyj7JzMCfN5IVaR5ihVwN1TDz0iwLt4xCNxJdzSNdmcwXcVycfS//\n29C0v+5hsExa7exbolY9BeS6QDahSM1Logf+vJGsSIezeTFAverMf+i91h5yqMCtWdbdliLY\nwr6e9d1EZoMVxCbf2j3ztDQ9OmKzfeh9S6iqZ8mNynEJRWSCX8iBvWRF2v7TPmAuhoeZTnVp\nlrVF8rX5SYvWPJJmOKCRa2fQ/upQ10idqSGnbb4ab1/UAKRLzL4lzJL0U8vTYSKTrkjrznyA\nQbAl1wNzapYZbCo+FIfsb/tWGdFH+uG+Z17j7d9/f6RdYvYtYeqNtwVxOowtxJ6vnkhYpJCQ\n06luzTKuRvLZtbMXyaFVxo7aMVl1Wjq/wJ+i39N1idm3hKl6yMaaBuogWmrPV09MVCTSGbdm\nWYQ+UmlSK4nnsm9E26VV9pVvOCp75vWh/gp/i3S7VqON2beEqXosRaIme8k9Xz2RrEiz+tSx\n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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用\n",
    "par(mar=c(9,1,1,1))\n",
    "dend %>%\n",
    "    set(\"labels_col\", value = c(\"skyblue\", \"orange\", \"grey\"), k=3) %>%\n",
    "    set(\"branches_k_color\", value = c(\"skyblue\", \"orange\", \"grey\"), k = 3) %>%\n",
    "    plot(axes=FALSE)\n",
    "# 画矩形框\n",
    "# k表示将类切割为k个簇，lty矩形框线条类型，lwd矩形框线条宽度，col填充颜色,x表示从第几个类开始画簇\n",
    "rect.dendrogram( dend, k=3, lty = 2, lwd = 5, x=17, col=rgb(0.1, 0.2, 0.4, 0.1) ) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 与预期的聚类结果相比较 Comparing with an expected clustering\n",
    "将得到的集群与预期的分布进行比较是一项常见的任务。在我们用来构建树状图的mtcars数据集中，有一个am列是一个二进制变量。如果我们可以用cluster()函数来检查与这个变量是否一致。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# Create a vector of colors, darkgreen if am is 0, green if 1.\n",
    "# 获得数据，如果am为0就是forestgreen颜色\n",
    "my_colors <- ifelse(mtcars$am==0, \"forestgreen\", \"green\")\n",
    " \n",
    "# Make the dendrogram\n",
    "# 设置图像空白区域\n",
    "par(mar=c(10,1,1,1))\n",
    "dend %>%\n",
    "    set(\"labels_col\", value = c(\"skyblue\", \"orange\", \"grey\"), k=3) %>%\n",
    "    set(\"branches_k_color\", value = c(\"skyblue\", \"orange\", \"grey\"), k = 3) %>%\n",
    "    set(\"leaves_pch\", 19)  %>% \n",
    "    set(\"nodes_cex\", 0.7) %>% \n",
    "    plot(axes=FALSE,horiz =FALSE)\n",
    " \n",
    "# Add the colored bar\n",
    "# 添加颜色bar\n",
    "# colors颜色，dend聚类图，rowLabels名字\n",
    "colored_bars(colors = my_colors, dend = dend, rowLabels = \"am\",horiz =FALSE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.5 基于tanglegram()比较2个树状图 Comparing 2 dendrograms with tanglegram()\n",
    "可以使用tanglegram()函数比较两个树状图。这里它说明了一个非常重要的概念：当你计算你的距离矩阵和当你运行你的层次聚类算法时，你不能简单地使用默认选项而不考虑你在做什么。看看两种不同的集群化方法之间的区别吧。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAABJRU5ErkJggg==",
      "text/plain": [
       "Plot with title \"\""
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      },
      "text/plain": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Make 2 dendrograms, using 2 different clustering methods\n",
    "# 使用两种完全不同的聚类方法\n",
    "d1 <- USArrests %>% dist() %>% hclust( method=\"average\" ) %>% as.dendrogram()\n",
    "d2 <- USArrests %>% dist() %>% hclust( method=\"complete\" ) %>% as.dendrogram()\n",
    " \n",
    "# Custom these kendo, and place them in a list\n",
    "# 定制树列表\n",
    "dl <- dendlist(\n",
    "  d1 %>% \n",
    "    set(\"labels_col\", value = c(\"skyblue\", \"orange\", \"grey\"), k=3) %>%\n",
    "    set(\"branches_lty\", 1) %>%\n",
    "    set(\"branches_k_color\", value = c(\"skyblue\", \"orange\", \"grey\"), k = 3),\n",
    "  d2 %>% \n",
    "    set(\"labels_col\", value = c(\"skyblue\", \"orange\", \"grey\"), k=3) %>%\n",
    "    set(\"branches_lty\", 1) %>%\n",
    "    set(\"branches_k_color\", value = c(\"skyblue\", \"orange\", \"grey\"), k = 3)\n",
    ")\n",
    " \n",
    "# Plot them together\n",
    "tanglegram(dl, \n",
    "            # 子树是否带颜色\n",
    "            common_subtrees_color_lines = FALSE, \n",
    "            # 是否突出显示边\n",
    "            highlight_distinct_edges  = TRUE, \n",
    "            # 是否突出分支\n",
    "            highlight_branches_lwd=FALSE, \n",
    "            # 两个树的距离\n",
    "            margin_inner=7,\n",
    "            # 两个树之间线条宽度\n",
    "            lwd=2\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4 参考\n",
    "+ [Dendrogram](https://www.r-graph-gallery.com/dendrogram.html)\n",
    "+ [基于matplotlib实现树形图的绘制](https://blog.csdn.net/luohenyj/article/details/97949476)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "R",
   "language": "R",
   "name": "ir"
  },
  "language_info": {
   "codemirror_mode": "r",
   "file_extension": ".r",
   "mimetype": "text/x-r-source",
   "name": "R",
   "pygments_lexer": "r",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
